跳至主要内容

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

项目描述

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 问题 上追踪。如果遇到问题,请检查您的错误是否已经报告。如果是您首先发现的,请提供详细且受欢迎的 反馈 以帮助我们解决问题。

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

鸣谢

作者

  • 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 状态页面