Google App Engine,是安排代码执行的最佳方式

时间:2014-12-17 17:33:27

标签: python google-app-engine

问题:某些用户可以创建文档,并在将来选择日期和时间,以便在该文档上执行某些代码。用户还可以取消该预定事件。 我正在寻找GAE中最好的实现。我正在考虑两种可能的实现:

- 任何文档的push任务,设置eta参数,我可以将Taskqueue.add(..)的结果保存在文档中,以防用户想要在执行前删除任务。我不知道是否有可以启动的最大任务数,并且eta(30)的最大天数可能是个问题。

- 我可以保存在DataStore的datetime和文件的密钥中并使用cron 如果有任何要处理的条目,每10分钟检查一次。我担心这种方法可能很昂贵。我是对的吗?

1 个答案:

答案 0 :(得分:2)

因为您的用户可以安排活动以及取消 - 我建议您将预定的请求保存到数据存储区并让cron作业检查当时是否有任何安排。

要减少作业运行的次数,您可以更改用户可以为作业选择的日期/时间的精度(例如15分钟增量或每小时)。只要您正确构建计划的请求实体 - 它不应该是对数据存储区的昂贵打击。要减少数据存储命中,您可以在一个查询中获取一系列即将到来的预定事件,并将它们放在内存缓存中 - 只要您在用户修改缓存时管理该缓存。