检查时差的最有效方法

时间:2017-09-23 00:52:50

标签: mongodb

我希望在创建x分钟后每隔y分钟检查一次我的数据库中的项目。

我已经提出了两种方法来做到这一点,我不确定哪种方法可以提高效率/速度。

第一种是在模型中存储Date字段并执行类似

的操作
Model.find({time_created > current_time - y})

每隔x分钟内完成一项cron作业。

第二个是保留一个times_to_check字段,根据xy跟踪应该检查对象的次数。

Model.find({times_to_check> 0})

我想为什么这两者可能具有可比性是因为Dates的第一次比较需要更长时间,但第二次比较需要在检查对象后写入数据库。

1 个答案:

答案 0 :(得分:0)

因此,无论哪种方式,您都必须不断检查数据库以查看是否该查询您的收藏。在“第二个解决方案”中,您无法运行后台进程,因为您只是参考了如何确定收集增量。

坚持运行unix Cron作业,但要确保它具有容错能力,并确保它在应用程序启动时实际运行。以下是如何处理它的一个非常好的答案。

How do I write a bash script to restart a process if it dies?

基于此,如果您的Cron作业没有运行x分钟,数小时或数天,我会问您的应用程序如何反应。如果发生这种情况,您的应用程序将如何恢复