我怎么能在App Engine Python中执行这种计划任务?

时间:2012-01-12 15:46:25

标签: python google-app-engine

我有一个带有文本字段的表单,用于输入不带小数的数字 代表必须添加到当前时间的分钟数的地方 并将插入名为Alarm的表中。

当结果出现时,我的网络应用程序必须对另一个表进行插入操作。

例如,如果用户输入20分钟,当前时间为22:10,则结果时间 必须为22:30并将插入Alarm表。因此,当22:30到达时,必须在另一个表上进行新的插入。

如何使用Python在AppEngine上执行此操作?

2 个答案:

答案 0 :(得分:3)

根据您的要求,您可能还需要考虑将Taskseta或倒计时结合使用。

如果您计划允许用户取消操作,则在添加到“其他”表之前,您需要使用任务检查的某种类型的无操作标记。或者,在执行添加之前,让任务检查Alarm表。

另外,请注意倒计时/η不准确,它们更像礼貌请求。因此,如果您的队列正在备份任务,您的添加将在它们应该发生之后发生。 (虽然cron,特别是1分钟的工作,也会定期遇到时间问题)。

这种方法的优点是你不必弄清楚如何避免错过工作。每个任务代表一个添加(或一组相关的添加)。此外,如果写入失败,任务将重试,这很好。

Cron可能是解决您特定问题的更好解决方案。

答案 1 :(得分:2)

您已经说过要将目标时间存储在闹钟表中。因此,您的cron必须每分钟运行一次(或者每隔5或10运行一次,具体取决于您的警报的分辨率)并检查是否有与当前时间匹配的警报,如果是,则执行操作。