2009-10-26 74 views
0

假设我有1000个工作要重复执行,您如何建议我在Google AppEngine上构建我的系统?在AppEngine上交错作业的策略?

我需要能够在有效扩展系统的同时添加更多作业。计划任务是课程解决方案以及任务队列的一部分,但我正在寻找更多的见解,以便最好地利用这些资源。

注意:“作业”之间没有依赖关系。

+0

我不明白这个问题。这些工作之间是否存在依赖关系?运行所需的时间? – 2009-10-26 20:40:33

+0

在GAE中,每个计划任务被限制在〜30秒。我期望我的每个“工作”都是30秒。 – jldupont 2009-10-26 21:08:14

回答

0

根据您提供的描述很少,很难说。如果您使用的是Python,您可能需要使用Task Queue,也可能使用deferred library。所有这些都需要使用API​​来排列任务。

如果你谈论的是有许多重复的任务,你有两个选择:

  • 开始手动任务队列的第一个任务,并使用“链接”让每个调用排队下一个具有适当的时间间隔。
  • 将每个计划存储在数据存储中。定期扫描任何已达到其ETA的任务;为每个任务启动任务队列任务,更新下一次运行的ETA。
+0

感谢Nick!我明白你的观点,我不够具体。 – jldupont 2009-10-29 10:19:24

0

我认为你可以使用Cron Jobs

问候。

+0

是计划任务是解决方案的一部分,但我正在寻找更多的架构级别建议。 – jldupont 2009-10-26 15:18:43

+0

什么是“架构级”问题? – OscarRyz 2009-10-26 21:14:25

+0

如果您想绕过30秒的限制,您可以创建一个虚拟JSP,使AJAX调用RESTful“任务”(我的意思是可中断并可重启) – ATorras 2009-10-27 10:03:05