2016-10-07 97 views
1

我正在使用谷歌雲任務隊列來執行一些長時間運行的任務。 所有任務完成後,我想發送一些通知。任務隊列完成回調

我使用下面的代碼,以獲得我的線程掛起任務的數量

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

但在這裏我不斷檢查通過getNumTask()方法返回值。 如果它是零,然後我通知其他人。 是否有任何回調可用,可以在我的隊列中的所有任務都完成後通知我。

問候,

+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> 

然後,在推送隊列中的所有任務之後,將通知任務推送到同一個隊列。通知任務將是隊列中的最後一個任務,並且將在所有任務完成後執行。

注意:當你的一個任務失敗時,要小心自動重試。這將使通知任務不是隊列中的最後一個。也許你可以清除故障隊列,然後重試。