2016-04-25 18 views
1

Google App Engineのガイドに従って自分のタスクを設定するとき、マニュアルまたは基本的なスケーリングモジュールを使用して、tasks runs for more than 10 minutes(デフォルトの制限)があり、1時間に行くことが可能であることを読みました。GAEタスクは1時間実行されますか?

私はこの方法で(以下のyaml構成で)構成しようとしましたが、私のタスクは1時間でなく10分後に必ず終了します。

私は間違っていますか?

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

答えて

3

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

私はあなたの答えを実装し、それはトリックでした。私はあなたの答えを受け入れた。ありがとう –

関連する問題