基本模块(Google app engine)在任务队列中的截止日期超出错误

时间:2015-12-15 11:02:37

标签: python django google-app-engine task push-queue

我正在使用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

请有人告诉如何让任务运行更长时间没有截止日期超过错误。

1 个答案:

答案 0 :(得分:0)

任务可以在您需要的时候运行,但HTTP请求有自己的截止日期。您可能需要重构在任务中运行的代码 - 可能会将一个大型请求分解为一系列较小的请求。