Google App Engine:排队任务与Cron Jobs

时间:2012-08-11 18:33:22

标签: java google-app-engine task-queue

我对GAE的任务概念,任务队列(推送和拉动),Cron Jobs以及每个概念与前端与后端实例的关系非常困惑。

我试图实现某些HTTP请求可以立即得到服务的情况,而有些则排队等待。排队的请求可能最终会触发我自己的代码执行(一旦消耗它们),或者它们可能会触及其中一个GAE服务API(LogQuery等)。

我似乎无法理解如何设计这两个场景,更不用说编写代码了。为了使事情变得更糟,我已经阅读了一些文献,这些文献暗示了你想要做的某些与任务/队列相关的编码,这取决于代码是在前端还是后端实例上执行。在此先感谢您的帮助!一些具体例子的奖励点!

1 个答案:

答案 0 :(得分:0)

你编写代码,Tasks和Cron执行它。

Task是一组属性的包装器,主要属性是应该执行的Url。你的代码(handler,servlet)应该驻留在那个url上。任务位于TaskQueues中,它具有某些默认属性,包括多快,多少并行等等。它们执行任务。所以基本上是一个待办事项列表,在任务启动时顺序执行任务而不保证。

Cron是一项定期调用您提供的Url的服务。从某种意义上说它是一个调度程序。

您的Url(=您的处理程序/ servlet)可以驻留在前端实例(默认)或后端实例上(必须在Task或Cron设置中设置特殊属性)。主要区别在于前端请求必须在10分钟内完成,而后端请求可以无限期地完成。