运行一小时的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个长进程,但也许我在这里也是错误的?
您需要定义要在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
你能告诉我GAE如何处理多个并发进程吗?是否有规则说“同时只运行X进程,并在以后排队”?它是否是'max_concurrent_requests'?提前致谢。 –
是的,你可以控制队列参数中的'max_concurrent_requests'。 app.yaml中有另一个'max_concurrent_requests'来控制每个实例的线程数。 – marcadian
我实现了你的答案,并且做到了这一点。我接受了你的答案。谢谢 –
在基本或手动缩放实例中,任务可以运行多长时间没有限制。如有必要,它可以运行几天。一个实例可以关闭,但如果它保持不变,它可以无限期地继续运行你的任务。 –
这是真的吗?我知道后台线程有最大生命周期24小时,但不知道任务。 – marcadian