2016-10-07 8 views
1

Я использую очередь задач Google Cloud для выполнения некоторых длительных задач. Как только все задачи были завершены, я хотел отправить уведомление.Обратный вызов завершения очереди задач

Я использую ниже код, чтобы получить количество отложенного задания в моей теме

QueueStatistics статистика = taskQueue.fetchStatistics(); stats.getNumTasks();

, но здесь я постоянно проверяю значение return методом 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> 

Затем, после нажатия всех задач в очереди, вы вызываете задачу уведомления в одну очередь. Задача уведомления будет последней в очереди и будет выполнена после завершения всех задач.

Примечания: будьте осторожны при попытках авто-повторных попыток, когда одна из ваших задач выходит из строя. Это сделает задачу уведомления не последней в очереди. Возможно, вы можете очистить очередь при сбое, а затем повторите попытку.

 Смежные вопросы

  • Нет связанных вопросов^_^