任务队列完成回调

时间:2016-10-07 09:12:29

标签: google-app-engine google-cloud-datastore task-queue

我正在使用谷歌云任务队列来执行一些长时间运行的任务。 完成所有任务后,我想发送一些通知。

我使用下面的代码来获取我的帖子中待处理任务的数量

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

但是我在这里通过getNumTask()方法不断检查值返回。 如果它为零,那么我通知其他人。 是否有任何可用的回调可以在我的队列的所有任务完成后通知我。

此致

1 个答案:

答案 0 :(得分:1)

如果同时运行的任务不是您的应用程序的必需,您可以将max-concurrent-requests设置为1来设置队列,以便逐个运行任务:

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

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

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

相关问题