Freigeben über


StartTask Klasse

In einigen Fällen kann der Starttask erneut ausgeführt werden, obwohl der Knoten nicht neu gestartet wurde. Aus diesem Grund sollten Startaufgaben idempotent sein und ordnungsgemäß beendet werden, wenn das setup, das sie ausführen, bereits abgeschlossen wurde. Es ist besonders darauf zu achten, dass Startaufgaben vermieden werden, die einen Breakaway-Prozess erstellen oder Dienste aus dem Arbeitsverzeichnis der Startaufgabe installieren/starten, da batch dadurch verhindert wird, dass die Startaufgabe erneut ausgeführt werden kann.

Vererbung
azure.mgmt.batch._serialization.Model
StartTask

Konstruktor

StartTask(*, command_line: str | None = None, resource_files: List[_models.ResourceFile] | None = None, environment_settings: List[_models.EnvironmentSetting] | None = None, user_identity: _models.UserIdentity | None = None, max_task_retry_count: int = 0, wait_for_success: bool | None = None, container_settings: _models.TaskContainerSettings | None = None, **kwargs: Any)

Keyword-Only Parameter

Name Beschreibung
command_line
str

Die Befehlszeile wird nicht unter einer Shell ausgeführt und kann daher keine Shellfeatures wie die Erweiterung von Umgebungsvariablen nutzen. Wenn Sie solche Features nutzen möchten, sollten Sie die Shell in der Befehlszeile aufrufen, z. B. mit "cmd /c MyCommand" in Windows oder mit "/bin/sh -c MyCommand" unter Linux. Erforderlich, wenn andere Eigenschaften des startTask angegeben werden.

resource_files

Eine Liste der Dateien, die der Batch-Dienst vor dem Ausführen der Befehlszeile auf den Computeknoten lädt.

environment_settings

Eine Liste der Umgebungsvariableneinstellungen für den Starttask.

user_identity

Wenn er nicht angegeben wird, wird der Task als nicht administrativer Benutzer ausgeführt, der für die Aufgabe eindeutig ist.

max_task_retry_count
int

Der Batch-Dienst wiederholt einen Task, wenn sein Exitcode ungleich null ist. Beachten Sie, dass dieser Wert die Anzahl der Wiederholungen ausdrücklich steuert. Der Batch-Dienst wiederholt den Task einmal und kann ihn anschließend bis zu diesem Grenzwert wiederholen. Wenn die maximale Wiederholungsanzahl beispielsweise 3 beträgt, versucht Batch die Aufgabe bis zu vier Mal (ein erster Versuch und 3 Wiederholungen). Wenn die maximale Wiederholungsanzahl 0 ist, versucht der Batch-Dienst die Aufgabe nicht erneut. Wenn die maximale Wiederholungsanzahl -1 beträgt, wiederholt der Batch-Dienst die Aufgabe ohne Einschränkung. Standard ist "0".

wait_for_success

Wenn true und der Starttask auf einem Computeknoten fehlschlägt, wiederholt der Batch-Dienst den Starttask bis zu seiner maximalen Wiederholungsanzahl (maxTaskRetryCount). Wenn der Task nach allen Wiederholungen immer noch nicht erfolgreich abgeschlossen wurde, markiert der Batch-Dienst den Computeknoten als unbrauchbar und plant keine Aufgaben dafür. Diese Bedingung kann über den Knotenstatus und die Planungsfehlerdetails erkannt werden. Wenn false, wartet der Batch-Dienst nicht, bis die Startaufgabe abgeschlossen ist. In diesem Fall können andere Aufgaben mit der Ausführung auf dem Computeknoten beginnen, während der Starttask noch ausgeführt wird. und selbst wenn der Starttask fehlschlägt, werden weiterhin neue Aufgaben auf dem Knoten geplant. Der Standardwert ist „true“.

container_settings

Wenn dies angegeben wird, werden alle Verzeichnisse rekursiv unter dem AZ_BATCH_NODE_ROOT_DIR (dem Stamm von Azure Batch Verzeichnissen auf dem Knoten) dem Container zugeordnet, alle Aufgabenumgebungsvariablen dem Container zugeordnet, und die Taskbefehlszeile wird im Container ausgeführt.

Variablen

Name Beschreibung
command_line
str

Die Befehlszeile wird nicht unter einer Shell ausgeführt und kann daher keine Shellfeatures wie die Erweiterung von Umgebungsvariablen nutzen. Wenn Sie solche Features nutzen möchten, sollten Sie die Shell in der Befehlszeile aufrufen, z. B. mit "cmd /c MyCommand" in Windows oder mit "/bin/sh -c MyCommand" unter Linux. Erforderlich, wenn andere Eigenschaften des startTask angegeben werden.

resource_files

Eine Liste der Dateien, die der Batch-Dienst vor dem Ausführen der Befehlszeile auf den Computeknoten lädt.

environment_settings

Eine Liste der Umgebungsvariableneinstellungen für den Starttask.

user_identity

Wenn er nicht angegeben wird, wird der Task als nicht administrativer Benutzer ausgeführt, der für die Aufgabe eindeutig ist.

max_task_retry_count
int

Der Batch-Dienst wiederholt einen Task, wenn sein Exitcode ungleich null ist. Beachten Sie, dass dieser Wert die Anzahl der Wiederholungen ausdrücklich steuert. Der Batch-Dienst wiederholt den Task einmal und kann ihn anschließend bis zu diesem Grenzwert wiederholen. Wenn die maximale Wiederholungsanzahl beispielsweise 3 beträgt, versucht Batch die Aufgabe bis zu vier Mal (ein erster Versuch und 3 Wiederholungen). Wenn die maximale Wiederholungsanzahl 0 ist, versucht der Batch-Dienst die Aufgabe nicht erneut. Wenn die maximale Wiederholungsanzahl -1 beträgt, wiederholt der Batch-Dienst die Aufgabe ohne Einschränkung. Standard ist "0".

wait_for_success

Wenn true und der Starttask auf einem Computeknoten fehlschlägt, wiederholt der Batch-Dienst den Starttask bis zu seiner maximalen Wiederholungsanzahl (maxTaskRetryCount). Wenn der Task nach allen Wiederholungen immer noch nicht erfolgreich abgeschlossen wurde, markiert der Batch-Dienst den Computeknoten als unbrauchbar und plant keine Aufgaben dafür. Diese Bedingung kann über den Knotenstatus und die Planungsfehlerdetails erkannt werden. Wenn false, wartet der Batch-Dienst nicht, bis die Startaufgabe abgeschlossen ist. In diesem Fall können andere Aufgaben mit der Ausführung auf dem Computeknoten beginnen, während der Starttask noch ausgeführt wird. und selbst wenn der Starttask fehlschlägt, werden weiterhin neue Aufgaben auf dem Knoten geplant. Der Standardwert ist „true“.

container_settings

Wenn dies angegeben wird, werden alle Verzeichnisse rekursiv unter dem AZ_BATCH_NODE_ROOT_DIR (dem Stamm von Azure Batch Verzeichnissen auf dem Knoten) dem Container zugeordnet, alle Aufgabenumgebungsvariablen dem Container zugeordnet, und die Taskbefehlszeile wird im Container ausgeführt.