2016-10-07 102 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> 

然后,在推送队列中的所有任务之后,将通知任务推送到同一个队列。通知任务将是队列中的最后一个任务,并且将在所有任务完成后执行。

注意:当你的一个任务失败时,要小心自动重试。这将使通知任务不是队列中的最后一个。也许你可以清除故障队列,然后重试。