【问题标题】:AppEngine Resume All TasksAppEngine 恢复所有任务
【发布时间】:2012-07-12 23:35:54
【问题描述】:

在我的生产服务器上,我有大约 500 个任务队列连续 30 次失败并在任务队列中等待。除了手动单击所有任务的“运行”之外,有没有办法恢复所有任务?我不能在任务队列文档中指向“恢复所有”功能的任何内容。

我尝试使用 task_retry_limit: 100 上传新的 queue.yaml,但它不起作用。这就像,在达到 30 标记后,appengine 只是停止执行任务

500 个任务失败前的queue.yaml

   queue:
      - name: default
      - rate: 1/s

【问题讨论】:

    标签: google-app-engine queue task


    【解决方案1】:

    请注意,随着您的任务继续失败并重试,任务队列系统会安排任务在未来越来越远地执行。默认情况下,最大 ETA 为 1 小时。是不是你们的任务都有一个未来 1 小时的 ETA?

    【讨论】:

    • 我也遇到了同样的问题——我会处理一些任务,但我只有一个后端实例。所以,他们中的一些人会得到503'd,他们的等待时间会加倍。这会一遍又一遍地发生。就像你提到的,我看到 ETA 时间翻了一番。我添加了max_backoff_secondsdevelopers.google.com/appengine/docs/python/config/queue,然后就等着……
    【解决方案2】:

    只需尝试一次新队列名称(如下所示)而不是默认队列,此队列对我有用。

    - name: sales-queue
      rate: 10/s
      max_concurrent_requests: 1
      retry_parameters:
       task_retry_limit: 500
       min_backoff_seconds: 10
       max_backoff_seconds: 20
    

    【讨论】:

      【解决方案3】:

      仪表板中没有运行所有任务的按钮。任务未执行的原因是 15,000 个失败的任务(推测之间没有成功的任务)导致 App Engine 大幅停止任务执行,而不管指定的任务速率如何。

      要恢复所有任务,只需手动运行其中几个即可。如果它们成功,App Engine 会注意到并再次缓慢提高任务执行率,这会导致更多任务运行并成功,这会导致 App Engine 提高任务率,依此类推,直到恢复默认任务率。这将相对快速地级联到正在运行的所有 500 个任务中。

      【讨论】:

        猜你喜欢
        • 2013-06-10
        • 1970-01-01
        • 2016-12-25
        • 2014-11-30
        • 2021-10-29
        • 1970-01-01
        • 1970-01-01
        • 2018-11-26
        • 1970-01-01
        相关资源
        最近更新 更多