关于基于 TTL 索引的文档过期,MongoDB 文档说:
删除过期文档的后台任务每 60 秒运行一次。因此,在文档过期和后台任务运行之间的时间段内,文档可能会保留在集合中。
有没有办法通过配置更改该周期?或者它是硬连线在 mongod 代码中的?
截至今天,这是不可能的,但已经在MongoDB JIRA中进行了跟踪:
SERVER-6712:使 TTL 收集后台任务周期由用户定义(命令行选项)SERVER-8616:添加 Tunable 到 TTL Collection 线程SERVER-13937:允许设置 TTL 监视器的窗口和间隔还有一种解决方法 - 您可以手动关闭和打开 TTL 监视器:
db.adminCommand({setParameter: 1, ttlMonitorEnabled: false});
db.adminCommand({setParameter: 1, ttlMonitorEnabled: true});
Run Code Online (Sandbox Code Playgroud)
编辑:事实证明,有一面ttlMonitorSleepSecs旗帜。例如,这里提到了它,但官方文档中没有提到。
db.adminCommand({setParameter: 1, ttlMonitorSleepSecs: 60});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2894 次 |
| 最近记录: |