【问题标题】:How to auto-start an App-Engine backend when a pull-queue has tasks?拉队列有任务时如何自动启动 App-Engine 后端?
【发布时间】:2013-11-27 22:30:01
【问题描述】:

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

App-Engine 能否在 pull-queue 有任务时自动启动命名后端,然后在空闲且队列为空时让它过期?

看起来我只需要某种方式来调用任意 URL 来“通知”它有任务要处理,但我找不到任何有关如何完成此操作的文档。

【问题讨论】:

    标签: google-app-engine task-queue


    【解决方案1】:

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

    没有拉取队列的通知系统,仅检查队列统计信息和空/非空租约结果。

    【讨论】:

      【解决方案2】:

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

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

      所以解决办法如下:

      1. 每隔 1 或 5 分钟启动一次 cron 并调用前端
      2. 检查前端队列,如果拉队列中有任务,则向基本扩展模块发出 URLFetch 请求
      3. 使用基本扩展模块处理队列中的任务

      如果您将 F1 实例用于前端,而将 b2 或更大的实例用于其他模块,则可以为您节省一些钱。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多