Jobausführung und Warteschlangensteuerung
Informationen zur Schematics-Jobwarteschlange
Wenn ein Benutzer eine Schematics-Operation ausführt, werden Jobs in eine Warteschlange für gemeinsam genutzte Services eingereiht. Ein Job verbleibt in der Warteschlange, bis Worker in den Zielregionen verfügbar sind, um den Job auszuführen. Planungsrichtlinien werden auf Jobs angewendet, um sicherzustellen, dass der Service für alle Benutzer gleichmäßig verfügbar ist.
Funktionsweise der Jobwarteschlange
Abhängig von der Anzahl der von einem Benutzer übergebenen Jobs und der Ausführungsdauer der Jobs kann es beim Konsumenten zu Verzögerungen kommen, bevor Jobs ausgeführt werden. Die Jobwarteschlange stellt sicher, dass Schematics allen Benutzern gleichermaßen zur Verfügung steht, unabhängig von der von einem Benutzer erzeugten Last.
Beispiel
Wenn sich für user-1 20 Jobs in der Warteschlange befinden und user-2 einen neuen Job übergibt, wartet der Job von User-2 vor den 20 Jobs von user-1's in einer Warteschlange, um Schematics
sowohl für user-1 als auch für user-2 gleichermaßen verfügbar zu machen.
Wann tritt der Job in die Warteschlange für anstehende Jobs ein?
Für einen Job müssen die folgenden Tasks ausgeführt werden, wenn er in die Warteschlange für anstehende Jobs eintritt.
- Für die Ausführung Ihres Jobs ist mehr Zeit erforderlich. Stellen Sie sicher, dass genügend Zeit für die Ausführung des Jobs angegeben ist.
- Das von Ihrer Jobausführung verwendete Image ist nicht vorhanden. Überprüfen Sie, ob die bereitgestellten Bilddetails vorhanden sind und der Name angegeben ist.
- Die Parameter für die Umgebungsvariable, die für den Job erforderlich sind, wurden nicht angegeben. Überprüfen Sie, ob die Umgebungsvariablen definiert sind.
- Die Befehle oder Argumente, die an den Job übergeben wurden, sind nicht gültig. Überprüfen Sie, ob die angegebenen Argumentflags korrekt sind.
Zeitlimit für Job überschritten
Terraform-Aufgaben wie Planen, Anwenden und Zerstören in einem Arbeitsbereich sollten in der Regel nicht länger als ein paar Stunden dauern, um Ressourcen bereitzustellen oder die Bereitstellung aufzuheben. Wenn Sie viele Ressourcen gleichzeitig
bereitstellen, was viele Stunden in Anspruch nimmt, wird empfohlen, die Ressourcen auf verschiedene Arbeitsbereiche aufzuteilen. Schematics begrenzt die Ausführungszeit eines Auftrags auf 24 Stunden. Nach 24 Stunden werden die Jobs beendet
und der Job wird als STOPPED markiert und der Arbeitsbereich zeigt ACTIVE oder INACTIVE an.
Nach 24 hours wird ein Unterbrechungssignal gesendet, um die Jobausführung zu stoppen. Für die Ausführung des Befehls wird eine Nachfrist von 10 minutes eingeräumt. Wenn der Job in dieser Zeit nicht beendet wird, wird
ein Abbruchsignal gesendet und der Job beendet. Nach dem Stoppen des Jobs wird eine Terraform-Aktualisierung ausgeführt, um sicherzustellen, dass die Statusdatei und andere Daten erfasst werden.
In einem Job werden mehrere Befehle wie terraform init, terraform apply und terraform refresh ausgeführt. Wenn das Zeitlimit für den Job in einem Befehl überschritten wird, erhalten alle weiteren Befehle
nur die zusätzliche 10 minutes zum Abschluss. Nach Ablauf von 10 minutes wird jeder Befehl mit beendet.
Beispiel Wenn ein Auftrag für immer in einem Terraform-Antrag feststeckt, wenn der Befehl gestoppt wird und wenn Sie eine Aktualisierung durchführen. Wenn refresh auch nicht reagiert, wird nach 15 minutes ein Kill ausgeführt.
Die Terraform- local exec und remote exec haben ein Zeitlimit von 30 minutes und beenden die Jobausführung, wenn sie überschritten wird.