跳转到主要内容

提供确定性的会话垃圾回收代替默认的随机回收

项目描述

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

每次处理Odoo的新请求时,都会评估此语句: random.random() < 0.001 [1]

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

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

在一个高访问量的Odoo网站上,将创建许多会话。遍历它们需要一些时间,尤其是在速度较慢/负载较重的文件系统上。垃圾回收随机发生,您的用户会向您报告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

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。

源分布

此版本没有可用的源分布文件。请参阅 生成分发存档的教程

构建分布

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面