我正在使用python Google App引擎SDK和Django框架。 在我的情况下,任务队列正在投掷截止日期超过错误
DeadlineExceededError:超出了响应HTTP请求的总截止日期。
虽然在基本缩放中使用任务队列,并且在基本或手动缩放中按照doc任务可以运行长达24小时。
任务正在更新所有MySQL数据库值,因此非常耗时。
通过
发送帖子请求来启动任务@api_view(['POST'])
def post_url(request):
params= dict(.......)#some dict
taskqueue.add(url='/tasks/gcm/gcm_all_user/',
params=params,
method="POST")
return Response('Initiated task')
此任务通过dispatch.yaml
分派给基本扩展模块dispatch:
- url: "*/tasks/*"
module: tasks
任务模块有一个url的处理程序
application: some-application
module: tasks
version: 2
runtime: python27
api_version: 1
threadsafe: true
basic_scaling:
libraries:
- name: MySQLdb
version: "latest"
handlers:
- url: /tasks.*
script: app.wsgi.application
请有人告诉如何让任务运行更长时间没有截止日期超过错误。
答案 0 :(得分:0)
任务可以在您需要的时候运行,但HTTP请求有自己的截止日期。您可能需要重构在任务中运行的代码 - 可能会将一个大型请求分解为一系列较小的请求。