跳转到主要内容

提供确定性会话垃圾回收,而不是默认的随机回收

项目描述

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

每当Odoo处理一个新的请求时,都会评估以下语句: random.random() < 0.001 [1]

平均每1000次中,它会返回 True 并触发会话的垃圾回收:超过1周未活跃的会话将被删除 [2]

这种随机方法在某些情况下可能成为问题。

在访问量很大的Odoo网站上,将会创建许多会话。遍历它们将需要一些时间,尤其是在慢速/负载的FS上。垃圾回收随机发生,用户会向您报告Odoo在随机操作上随机变慢的情况。他们无法重现这些情况,您也无法在Odoo日志中追踪它们,因为调用响应时间不包括Odoo在垃圾回收上花费的时间。

此外,在负载很重的服务器上,最好能够控制垃圾回收发生的时间。例如,有人可能只想每天晚上运行一次。

这就是我们创建此模块的原因

  • 以禁用默认的随机垃圾回收

  • 允许管理员用确定性方法替换它

    • 可以通过使用包含的计划任务;

    • 或者通过远程调用添加的公共方法 ir.autovacuum:gc_sessions()

目录

安装

您需要在服务器范围内加载此模块

  • 通过以 --load=web,base_deterministic_session_gc 启动 Odoo

  • 或者更新其配置文件

[options]
(...)
server_wide_modules = web,base_deterministic_session_gc

如果您想使用提供的确定性方法,则需要将其安装到数据库中。

配置

您可以在 Odoo 配置文件中更改会话过期延迟

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

默认值为 7 天。

错误跟踪器

错误在 GitHub Issues 上跟踪。如果遇到问题,请检查是否已经报告了您的问题。如果您是第一个发现它的,请提供详细的、受欢迎的 反馈 以帮助我们解决它。

请不要直接联系贡献者寻求支持或技术问题的帮助。

鸣谢

作者

  • Trobz

贡献者

维护者

此模块由 OCA 维护。

Odoo Community Association

OCA,或 Odoo 社区协会,是一个非营利组织,其使命是支持 Odoo 功能的协作开发并推广其广泛使用。

此模块是 GitHub 上的 OCA/server-tools 项目的组成部分。

欢迎您贡献力量。有关如何贡献的信息,请访问 https://odoo-community.org/page/Contribute

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源代码发行版

此版本没有提供源代码发行版文件。有关生成发行版存档的教程,请参阅 生成发行版存档

构建发行版

由以下组织支持