运行一小时的GAE任务?

问题描述:

当按照Google App Engine的指导配置我的任务时,我发现可以通过使用手动或基本缩放模块来获得一些tasks runs for more than 10 minutes(默认限制)并且转到一小时。运行一小时的GAE任务?

我试着用这种方式配置它(使用下面的yaml配置),但是我的任务总是在10分钟后,而不是1小时后死亡。

我做错了什么?

queue.yaml中:

queue: 
- name: long_process 
    max_concurrent_requests: 10 
    rate: 1/s 

... (other tasks) 

long_process_queue_module.yaml:

module: long-process-queue-module 
runtime: python27 
api_version: 1 
version: 1 
threadsafe: true 

instance_class: B1 
manual_scaling: 
    instances: 5 

handlers: 
- url: /_ah/queue/myhandler 
    script: wsgi.application 
    login: admin 

有什么不对?我怎样才能将持续时间设置为1小时?

万一它很重要,我还希望能够一次运行多个任务。我目前设置instances: 5怀疑它会同时运行5个长进程,但也许我在这里也是错误的?

+0

在基本或手动缩放实例中,任务可以运行多长时间没有限制。如有必要,它可以运行几天。一个实例可以关闭,但如果它保持不变,它可以无限期地继续运行你的任务。 –

+0

这是真的吗?我知道后台线程有最大生命周期24小时,但不知道任务。 – marcadian

您需要定义要在long-process-queue-module中运行的任务,您可以在queue.yaml中指定目标字段,也可以在排队任务时指定目标字段。 https://cloud.google.com/appengine/docs/python/config/queue#target https://cloud.google.com/appengine/docs/python/taskqueue/tasks#task_target

+0

你能告诉我GAE如何处理多个并发进程吗?是否有规则说“同时只运行X进程,并在以后排队”?它是否是'max_concurrent_requests'?提前致谢。 –

+0

是的,你可以控制队列参数中的'max_concurrent_requests'。 app.yaml中有另一个'max_concurrent_requests'来控制每个实例的线程数。 – marcadian

+0

我实现了你的答案,并且做到了这一点。我接受了你的答案。谢谢 –