【问题标题】:Google App Engine, best practice to schedule code execution [closed]Google App Engine,安排代码执行的最佳实践[关闭]
【发布时间】:2014-12-17 17:33:26
【问题描述】:

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

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

-我可以将文档的日期时间和密钥保存在DataStore中并使用cron 每 10 分钟检查一次是否有要处理的条目。我担心这种方法可能很昂贵。我说的对吗?

【问题讨论】:

  • 更清楚一点:在相同的平台、相同的语言、相同的框架、2 种替代方法上。问题是: 第一种方法:它在技术上符合要求吗?第二种方法是昂贵的(每个人都知道在应用引擎中计算成本真的很难)

标签: python google-app-engine


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回答。当我写“昂贵”时,我考虑的更多是虚拟机时间而不是数据存储访问。
猜你喜欢
  • 2021-11-10
  • 2014-01-18
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
  • 2011-10-20
  • 2013-05-07
  • 2015-01-30
  • 2015-12-22
相关资源
最近更新 更多