OdooWiki OCA HUB

Deterministic Session GC

base_deterministic_session_gc folder_open OCA/server-tools open_in_new
Extra Tools Licencia: AGPL-3

Cada vez que Odoo procesa una nueva solicitud, se evalúa esta instrucción: random.random() < 0.001 [1_]

1 vez de cada 1000 en promedio, devolverá True y activará la recolección de basura de las sesiones: las sesiones que no hayan estado activas durante más de 1 semana se eliminarán [2_]

Este enfoque aleatorio puede convertirse en un problema en algunos contextos.

En un sitio web de Odoo con muchas visitas, se crearán muchas sesiones. Recorrerlas todas llevará algún tiempo, especialmente en un FS lento/cargado. Al producirse la recolección de basura de forma aleatoria, tus usuarios te reportarán casos de Odoo ralentizándose aleatoriamente en acciones aleatorias. No podrán reproducir estos casos y tú tampoco podrás rastrearlos en tus registros de odoo, porque el tiempo de respuesta de las llamadas no incluye el tiempo que Odoo dedicó a la recolección de basura.

Además, en un servidor muy cargado, es mejor estar en condiciones de controlar cuándo ocurre la recolección de basura. Por ejemplo, uno podría querer ejecutarla solo una vez por noche.

Por eso creamos este módulo:

  • para desactivar la recolección de basura aleatoria predeterminada
  • para permitir a los administradores reemplazarla por un enfoque determinista:
  • ya sea utilizando la acción programada incluida;
  • o llamando remotamente al método público añadido ir.autovacuum:gc_sessions()

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 14.0

Sustituye la limpieza aleatoria de sesiones de Odoo por una programada y predecible. Las sesiones inactivas durante más de una semana se eliminan mediante un trabajo recurrente en lugar de en momentos aleatorios.

Por defecto, Odoo elimina ocasionalmente las sesiones de usuario antiguas en momentos aleatorios, lo que puede hacer que el sistema parezca lento sin previo aviso. Este módulo cambia ese comportamiento para que la limpieza se realice en un horario fijo.

  • Una acción programada llamada "Garbage collection of expired sessions" se ejecuta cada hora y elimina las sesiones que han estado inactivas durante más de una semana (el retraso se puede configurar).
  • La limpieza la realiza un método del modelo ir.autovacuum, y solo un administrador puede ejecutarla, por lo que no puede ser activada por usuarios normales.
  • Debido a que la tarea se ejecuta con un temporizador en lugar de aleatoriamente durante las solicitudes normales, los usuarios ya no deberían experimentar ralentizaciones inexplicables causadas por la limpieza de sesiones.
  • El módulo depende de mail y no añade nuevos menús ni pantallas; funciona en segundo plano y se gestiona a través de la lista estándar de acciones programadas.

En resumen, otorga a los administradores el control sobre cuándo se eliminan las sesiones antiguas, haciendo que el rendimiento de Odoo sea más consistente.

Depende de

mail
Modelos y campos (1)
  • ir.autovacuum · amplía un modelo existente

Texto generado por IA (DeepSeek) al leer el código de la versión 14.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 3 confirmadas, 6 sin información de 9 versiones.

Fuentes · Odoo 14.0

Confirmado el 2026-11-03 en la rama 14.0 de OCA/server-tools.

terminal Instalación y uso

Documentación de OCA · Odoo 14.0

Necesitas cargar este módulo a nivel de servidor:

  • Iniciando Odoo con --load=web,base_deterministic_session_gc
  • O actualizando su archivo de configuración:
[options]
(...)
server_wide_modules = web,base_deterministic_session_gc

También necesitas instalarlo en tu base de datos si quieres usar el enfoque determinista proporcionado.

Puedes cambiar el retardo de expiración de la sesión en el archivo de configuración de Odoo:

[options]
(...)
; 1 day = 60*60*24 seconds
session_expiry_delay = 86400

El valor predeterminado es 7 días.

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Uso.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.