在FLEXIBLE应用引擎中,长时间运行任务的任务队列



我正在使用灵活的应用程序引擎和Python3构建一个应用程序。在标准的应用引擎中,如果你需要运行一个超过60秒的任务,你可以使用taskqueue,或者deferred库(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 -compat配置来访问这些appengine api功能,该配置仅限于Python 2。

是否有办法在灵活的Appengine运行长任务(排队),而不必使用python-compat配置?

我有几乎完全相同的问题增加时间运行代码的谷歌灵活的应用程序引擎延迟DeadlineExceededError,认为问题是由于此截止日期超出错误

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

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

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

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

最新更新