在任务队列和Cron作业之间混淆

时间:2015-12-22 13:52:45

标签: java google-app-engine

我的数据存储区中有大约1000个条目,这可能会随着时间的推移而增加到大约10,000个条目。我的任务是更新每一行的某些属性并将其保存回来,此任务必须每24小时执行一次。

那么,我应该使用什么?

3 个答案:

答案 0 :(得分:0)

在任务队列中,必须通过代码手动将任务添加到队列中。如果你想每x次自动完成这个任务,你需要的是一个cron作业。

答案 1 :(得分:0)

首先,创建一个每24小时运行一次的cron作业。

其次,您需要确定此cron作业将执行的操作。最简单的选择是更新所有1,000条记录。您可以大批量检索和保存所有实体(即每次调用500个)。如果这是值的简单更新,则只需几秒钟。

由于cron作业失败后不会重试,因此更好的选择是创建任务并将其添加到队列中。所有更新都将在该任务中进行。

注意:确保如果您的任务被重试,它不会弄乱数据。如果无法做到这一点,则必须使用某种标志(即上次更新的时间戳)将更新的实体与仍需要更新的实体分开。

随着数据集的增长,您的cron作业可以启动多个任务来更新,例如,每个任务中有1,000条记录。

答案 2 :(得分:0)

你需要两者,

  • 每24小时开始批量更新作业的Cron作业
  • 任务队列来处理您的记录。