【发布时间】:2015-07-16 04:54:26
【问题描述】:
我在 appengine 中有一个 cron 作业,它每 5 分钟运行一次,以检查数据存储区是否根据条目的创建时间在特定表中创建了任何新条目。由于我不想报告该条目两次,我有以下内容:
我在数据库中查询在 (CurrentTime, currentTime - 5min) 中创建的条目。这应该有效,并且在大多数情况下都有效。
问题是 cron 可能不会报告少数条目。发生这种情况是因为上一个 cron 的 (currentTime - 5) 和下一个 cron 的 currentTime 不一样,并且有轻微的毫秒变化。所以如果在这个槽中创建了一个条目,它就不会被报告。
我试图绕过这个问题。一个解决方法是我在我的查询中寻找 6 分钟,这将确保没有遗漏任何条目,但我可能需要处理重复项,这对我来说是另一项任务。 我还可以将之前 cron 执行的时间存储在 db 或某处,基于此我可以查询,但差异可能会在某些时候加起来导致延迟。
请就我如何实现这一点提出任何建议。
【问题讨论】:
-
@SaketMittal 感谢您抽出宝贵时间。我不确定代码是否有助于解决问题。我认为问题中已经提供了所有必需的信息。
标签: java google-app-engine cron