我正在使用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-compat配置来访问这些appengine api功能,该配置仅限于Python 2.
有没有办法在Flexible Appengine中运行长任务(排队)而不必使用python-compat配置?
答案 0 :(得分:0)
我的问题几乎完全相同Increase time to run code for Google flexible app engine delaying DeadlineExceededError ,认为问题是由于这个截止日期的错误
但是因为这个问题询问了任务问题等,我想也许答案是不同的。实际上,它归结为这样一个事实:在灵活的环境中使用python3,这个任务运行时间超过60秒不是约束,因为所有代码都在docker容器中运行。因此,甚至可能不需要运行任务队列等。
检查gunicorn
入口点配置可能是值得的。在app.yaml
文件中添加-t
选项以及超时前允许的秒数。
runtime: python
env: flex
entrypoint: gunicorn -t 120 -b :$PORT main:app
这解决了我的问题,现在一个更长的代码在没有退出的情况下运行。