Ordentliches Herunterfahren von Azure WebJobs

Ich plane, einen kontinuierlichen Azure WebJob zum Senden von E-Mails und Push-Benachrichtigungen zu verwenden. Ich verstehe, dass WebJobs von Zeit zu Zeit aus verschiedenen Gründen gestartet und gestoppt werden. Das ist in Ordnung, aber ich möchte die Möglichkeit haben, "aufzuräumen", bevor der Job beendet wird.

Auf diese Weise kann mein WebJob den Status von Datenbankeinträgen aktualisieren oder Warteschlangenelemente löschen, die bereits in jedem Stapel verarbeitet wurden, sodass beim nächsten Ausführen des Jobs keine doppelten Nachrichten gesendet werden.

In der Dunkelheit habe ich versucht, meiner C # -Konsolenanwendung den folgenden Code hinzuzufügen:

Console.CancelKeyPress += (object sender, ConsoleCancelEventArgs e) =>
{
  e.Cancel = true;
  program.keepRunning = false;
};

Und dann habe ich den keepRunning-Bool verwendet, um die Haupt-while-Schleife zu steuern und eine Console.Writeline ("Exited Gracefully") außerhalb der while-Schleife zu platzieren. Aber das schien nicht zu helfen. Wenn ich den Auftrag stoppe (über die Schaltfläche "Stopp" auf der Registerkarte "Webjobs" meiner Azure-Website), verschwindet der Auftrag aus der Liste und lautet "Auftrag konnte nicht gestoppt werden:" Auftragsname ". im Azure-Portal (unten auf der Seite). Ich sehe den Text "Exited Gracefully" nicht im WebJob-Protokoll. Also habe ich diesen Code herausgenommen, da er nicht geholfen hat.

Ich suche also nach einer guten Möglichkeit, um meinem WebJob mitzuteilen, dass seine Sekunden gezählt sind und dass er seine Angelegenheiten in Ordnung bringen muss.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage