【问题标题】:Taskqueue for long running tasks in FLEXIBLE app engine用于 FLEXIBLE 应用引擎中长时间运行的任务的任务队列
【发布时间】:2016-09-16 20:29:27
【问题描述】:

我正在使用 Flexible App Engine 和 Python3 构建应用。在标准的appengine中,如果你需要运行一个超过60s的任务,你可以使用taskqueue,或者我已经成功完成的延迟库(taskqueue的抽象)。

Flexible App Engine 不再支持包含这些功能的 appengine api。相反,功能正在迁移到 google-cloud 库 (https://googlecloudplatform.github.io/google-cloud-python/),而不是 (https://cloud.google.com/appengine/docs/flexible/python/migrating-an-existing-app)。

您仍然可以使用仅限 Python 2 的 python-compat 配置访问这些 appengine api 功能。

有没有办法在 Flexible Appengine 中运行长任务(排队)而无需使用 python-compat 配置?

【问题讨论】:

  • 谷歌云库有什么问题?
  • 我在文档中没有看到对 TaskQueues 的任何引用。我一定是错过了什么.....

标签: python google-app-engine app-engine-flexible


【解决方案1】:

我遇到了几乎完全相同的问题Increase time to run code for Google flexible app engine delaying DeadlineExceededError ,认为问题是因为这个deadlineexceedederror

但是因为这个问题询问了任务队列等,我想答案可能不同。实际上,归结为这样一个事实,即在使用 python3 的灵活环境中,这个任务运行时间超过 60 秒并不是一个约束,因为所有代码都在 docker 容器中运行。因此,甚至可能不需要运行任务队列等。

检查gunicorn 入口点配置可能值得。在app.yaml文件中添加-t选项和超时前允许的秒数。

runtime: python
env: flex
entrypoint: gunicorn -t 120 -b :$PORT main:app

这解决了我的问题,现在更长的代码在没有退出的情况下运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多