【问题标题】:How to renew leases with Pull Queue tasks?如何使用 Pull Queue 任务更新租约?
【发布时间】:2018-02-16 16:01:45
【问题描述】:

我有一些长期任务可能需要一周以上的工作才能完成(部分管道只能在一天中的特定时间工作)。

更新租约似乎是正确的方法,因为当前的最大租约长度为 1 周。一个overview doc 中简要提到了续租,但我没有找到任何其他文档来说明如何使用它。

还有其他一些对它的间接引用 - taskqueue module 文档有一个例外,当您尝试续订租约但未能成功时,可能会发生这种情况......但没有续订租约的方法。 migrating to Cloud Tasks 上有一个文档提到了 task.renewLease 方法,但表示它不适用于使用内置 GAE TaskQueue 支持的人。

【问题讨论】:

    标签: google-app-engine


    【解决方案1】:

    我只使用过推送队列,但modify_task_lease() 可以满足您的需求: https://cloud.google.com/appengine/docs/standard/python/refdocs/google.appengine.api.taskqueue#google.appengine.api.taskqueue.Queue.modify_task_lease

    这里讨论过:https://cloud.google.com/appengine/docs/standard/python/taskqueue/pull/leasing-pull-tasks

    或者,鉴于您这样说:

    (管道的某些部分只能在特定时段内工作 天)。

    您可能需要考虑将这些任务分解为可以安全重复的小阶段,可能使用数据存储来保存状态。

    有一次我在应用引擎的 python ssl 库中发现了一个内存泄漏,这导致我的整个实例每隔几分钟就崩溃一次,这确实扰乱了我长时间运行的任务,因为它们都会重新启动。

    【讨论】:

      猜你喜欢
      • 2014-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      相关资源
      最近更新 更多