2017-10-30 2 views
0

Ich versuche herauszufinden, wie ein Dienst ausgeführt wird (1), wenn er keine Anrufe erhält.Kontinuierlich ausgeführter Dienst in Google Cloud Engine

Ich möchte Microservices Architektur verwenden.

Grundsätzlich möchte ich diesen Dienst (1) ausführen, wenn der andere Dienst (2) Anrufe und alle Daten empfängt.

Da der Dienst (1), den ich erwähnte, nicht empfangen wird, müsste ich keine neuen Instanzen erzeugen und ich möchte nur den Dienst (2) skalieren.

Ich habe bemerkt scheduling jobs with cron yaml, aber die Anzahl der Anrufe ist begrenzt. Ich muss diesen Dienst (1) erhalten, um alle 1 Minute aktiv zu sein, wenn der Dienst (2) aktiv ist.

+0

Bitte sehen Sie sich an: https://cloud.google.com/appengine/docs/standard/python/config/appref # scaling_elements –

Antwort

2

Es ist schwer, eine gute Antwort zu geben, ohne mehr darüber zu wissen, was Service (1) zu tun hat, wenn es "aktiv" ist. Es klingt, dass Sie wollen, dass Cron jede Minute eine Aufgabe startet.

Sie können cron in Verbindung mit Push-Warteschlangen verwenden: https://cloud.google.com/appengine/docs/standard/go/taskqueue/push/

Wenn eine Push-Warteschlange Aufgabe erstellen, können Sie die Eigenschaft delay, bevor es in die Warteschlange hinzufügen: https://cloud.google.com/appengine/docs/standard/go/taskqueue/reference#Task

(für mich in Python sie Nannte es countdownhttps://cloud.google.com/appengine/docs/standard/python/refdocs/google.appengine.api.taskqueue.taskqueue#google.appengine.api.taskqueue.taskqueue.add)

Sie könnten einen cron Job haben, der alle 24 Stunden feuert. Dieser Cron-Job würde Ihre Push-Warteschlange mit Tasks laden, deren Verzögerungen gestaffelt sind. Die Verzögerung des ersten ist 1 Minute, die Verzögerung des zweiten ist 2 Minuten, usw.

Verwandte Themen