如果拉队列有任务,如何自动启动App-Engine后端?

时间:2013-11-27 22:30:02

标签: google-app-engine task-queue

看起来我可以创建一个推送队列,它将启动后端处理任务,并且我可以将工作器数量限制为1.但是,有没有办法通过拉取队列来实现这一点?

当拉取队列有任务时,App-Engine可以自动启动命名后端,然后让它在空闲时到期并且队列为空吗?

看起来我只是需要一些方法来调用任意URL来“通知”它有任务要处理,但我找不到任何关于如何做到这一点的文档。

2 个答案:

答案 0 :(得分:0)

使用cron任务或推送队列定期启动后端。后端可以遍历拉取队列中的任务(如果有的话),然后过期。

没有针对拉取队列的通知系统,只有通过队列统计检查和空/非空租赁结果的检查。

答案 1 :(得分:0)

首先,您需要确定要用于模块的可伸缩性类型。我认为你应该看一下Basic Sc​​aling(https://developers.google.com/appengine/docs/java/modules/

接下来,要从pull队列处理任务,您可以使用Cron每隔几分钟检查一次队列。请求不是基本的扩展模块,而是前端模块,因为cron会启动实例。问题是你仍然需要支付至少一个前端实例,因为你的cron作业不允许它关闭。

所以解决方案可能如下:

  1. 每隔1或5分钟启动一次cron并致电前端
  2. 检查前端队列,如果拉队列中有任务,则向基本扩展模块发出URLFetch请求
  3. 使用基本缩放模块处理队列中的任务
  4. 如果您使用F1实例作为前端和b2或使用greate作为其他模块,它可以为您节省一些钱。