关于基于TTL索引MongoDB documentation的文档到期说:
删除过期文档的后台任务每60秒运行一次。结果,在文档到期和运行后台任务之间的一段时间内,文档可能会保留在集合中。
是否可以通过配置更改该时间段?还是用mongod代码硬接线?
答案 0 :(得分:1)
到目前为止,这是不可能的,但是已经在MongoDB JIRA中进行了跟踪:
SERVER-6712
:使TTL收集后台任务时段由用户定义(命令行选项) SERVER-8616
:向TTL收集线程添加可调参数 SERVER-13937
:允许为TTL监视器设置窗口和间隔 还有一种解决方法-您可以手动打开和关闭TTL监视器:
db.adminCommand({setParameter: 1, ttlMonitorEnabled: false});
db.adminCommand({setParameter: 1, ttlMonitorEnabled: true});
编辑:事实证明,有一个ttlMonitorSleepSecs
标志。例如here,但官方文档中未提及。
db.adminCommand({setParameter: 1, ttlMonitorSleepSecs: 60});