谷歌应用程序引擎模块 - 长时间运行的任务> 10分钟

时间:2014-02-22 19:08:11

标签: python google-app-engine

我正在尝试移植到谷歌应用引擎模块,这是一项以前长期运行的工作(在'后端'中运行)。

下面有一个示例module1.yaml。

application: myuniqueapp
module:  module1
version: 1
runtime: python27
api_version: 1
threadsafe: true
instance_class: F4_1G
automatic_scaling:
  max_idle_instances: 1

handlers:
- url: /data
  static_dir: data
  application_readable: true

- url: /.*
  script: app.application

通过taskqueue提交给此(来自前端实例)的代码是:

taskqueue.add(url='/tasks/do_my_task',
            target='1.module1')

这提交了没有问题的正确任务。任务也由module1执行。

但它在第10分钟被DeadlineExceededError杀死。这是一个长期运行的任务,运行时间超过10分钟(就像以前的'后端'一样)。

需要对模块中执行的任务进行哪些配置更改> 10分钟 ?

3 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

您可以选择几种方法,但目前尚无法解决App Engine自动缩放模块的10分钟请求截止时间。简而言之,您需要使任务运行更快,或者需要在没有期限的服务上运行它。

更快:

  • 将任务分为较小的进程,并将多个任务排队。
  • 对任务进行优化,使其在10分钟内运行。

没有截止日期:

  • 创建另一个自动缩放/手动应用引擎service以发送任务
  • module从自动缩放更改为手动或基本缩放。
  • 创建另一个auto-scaling/manual应用程序引擎服务以将该任务发送到。

答案 2 :(得分:0)

Google appengine还提供了可以在24小时内运行任务的backinstance类。重新路由任务请求以在backinstance上运行可以解决10分钟的问题。希望这可以解决您的问题