2016-10-07 2 views
1

Ich verwende die Google Cloud-Aufgabenwarteschlange, um einige lang andauernde Aufgaben zu erledigen. Sobald alle Aufgaben abgeschlossen sind, möchte ich eine Benachrichtigung senden.Rückruf für Aufgabenwarteschlangen-Abschluss

ich unten Code verwenden Anzahl der anstehenden Aufgabe

QueueStatistics Statistiken = taskQueue.fetchStatistics() in meinem Thread zu bekommen; stats.getNumTasks();

aber hier überprüfe ich kontinuierlich Wert Rückgabe von getNumTask() -Methode. Wenn es Null ist, benachrichtige ich andere. Gibt es einen Rückruf, der mich benachrichtigt, sobald alle Aufgaben in meiner Warteschlange abgeschlossen sind?

Grüße,

+0

Rückruf an? Eine Aufgabe kann eine E-Mail-Nachricht senden oder einen Kanal zum Senden von Nachrichten verwenden. – voscausa

Antwort

0

Wenn gleichzeitig laufenden Tasks kein Muss für Ihre Anwendung ist, können Sie Setup die Warteschlange mit max-concurrent-Anfragen auf 1 gesetzt, so dass die Aufgaben nacheinander ausgeführt werden:

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

Nachdem Sie alle Aufgaben in der Warteschlange übertragen haben, drücken Sie eine Benachrichtigungsaufgabe in dieselbe Warteschlange. Die Benachrichtigungsaufgabe ist die letzte in der Warteschlange und wird ausgeführt, nachdem alle Aufgaben abgeschlossen sind.

Hinweise: Seien Sie vorsichtig mit automatischen Wiederholungen, wenn eine Ihrer Aufgaben fehlschlägt. Dadurch wird die Benachrichtigungsaufgabe nicht die letzte in der Warteschlange. Vielleicht können Sie die Warteschlange bei einem Fehler löschen und es erneut versuchen.