2016-10-07 10 views
1

長時間実行されているタスクを実行するためにGoogleのクラウドタスクキューを使用しています。 すべてのタスクが完了したら、私は何らかの通知を送ろうと思っていました。タスクキュー完了コールバック

私は私のスレッドで保留中のタスクの数を取得するためのコードの下に使用しています

QueueStatistics統計= taskQueue.fetchStatistics(); stats.getNumTasks();

ここでは、getNumTask()メソッドで値の戻り値を確認しています。 0の場合は、他の人に通知します。 待ち行列のすべてのタスクが完了したら私に通知できるコールバックはありますか?タスクが実行されるように

よろしく、

+0

タスクは、電子メールメッセージを送信したり、チャネルを使用してメッセージを送信したりすることができます。 – voscausa

答えて

0

同時にタスクを実行すると、アプリケーションのための絶対必要ではない場合は、あなたは、セットアップ最大並列実行の要求とキューは、1に設定することができ一つずつ:

<queue-entries> 
    <queue> 
    <name>my-queue</name> 
    <rate>1/s</rate> 
    <max-concurrent-requests>1</max-concurrent-requests> 
    </queue> 
</queue-entries> 

次に、キュー内のすべてのタスクをプッシュした後、通知タスクを同じキューにプッシュします。通知タスクはキューの最後のタスクになり、すべてのタスクが完了した後に実行されます。

注:いずれかのタスクが失敗した場合、自動再試行には注意してください。これにより、通知タスクは最後のキューではありません。おそらく、失敗時にキューをパージしてから、再試行できます。

関連する問題