StartTask Klasse
Eine Aufgabe, die ausgeführt wird, wenn ein Knoten einen Pool im Azure Batch-Dienst hinzuschließt oder wenn der Computeknoten neu gestartet oder ein neuer Image erstellt wird.
Batch wiederholt Tasks, wenn ein Wiederherstellungsvorgang auf einem Knoten ausgelöst wird. Beispiele für Wiederherstellungsvorgänge sind (aber nicht beschränkt auf), wenn ein fehlerhafter Knoten neu gestartet wird oder ein Computeknoten aufgrund eines Hostfehlers verschwunden ist. Wiederholungsversuche aufgrund von Wiederherstellungsvorgängen sind unabhängig von und werden nicht mit maxTaskRetryCount gezählt. Auch wenn maxTaskRetryCount 0 ist, kann aufgrund eines Wiederherstellungsvorgangs eine interne Wiederholung erfolgen. Aus diesem Gründen sollten alle Tasks idempotent sein. Dies bedeutet, dass Tasks es tolerieren müssen, dass sie unterbrochen und neu gestartet werden, ohne dass es zu Beschädigungen oder doppelten Daten kommt. Die bewährte Methode für Aufgaben mit langer Ausführungsdauer besteht darin, eine Form von Prüfpunkten zu verwenden. In einigen Fällen kann startTask erneut ausgeführt werden, obwohl der Computeknoten nicht neu gestartet wurde. Es sollte besonders darauf geachtet werden, StartTasks zu vermeiden, die einen Unterbrechungsprozess erstellen oder Dienste aus dem StartTask-Arbeitsverzeichnis installieren/starten, da dies verhindert, dass Batch die StartTask erneut ausführen kann.
Alle erforderlichen Parameter müssen aufgefüllt werden, um an Azure senden zu können.
- Vererbung
-
StartTask
Konstruktor
StartTask(*, command_line: str, container_settings=None, resource_files=None, environment_settings=None, user_identity=None, max_task_retry_count: int = None, wait_for_success: bool = None, **kwargs)
Parameter
- command_line
- str
Erforderlich. 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 "/bin/sh -c MyCommand" unter Linux. Wenn die Befehlszeile auf Dateipfade verweist, sollte sie einen relativen Pfad (relativ zum Arbeitsverzeichnis Task) oder die von Batch bereitgestellte Umgebungsvariable (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables) verwenden.
- container_settings
- TaskContainerSettings
Die Einstellungen für den Container, unter dem startTask ausgeführt wird. Wenn dies angegeben ist, werden alle Verzeichnisse rekursiv unterhalb der AZ_BATCH_NODE_ROOT_DIR (dem Stammverzeichnis der Azure Batch Verzeichnisse auf dem Knoten) dem Container zugeordnet, alle Taskumgebungsvariablen werden dem Container zugeordnet, und die Taskbefehlszeile wird im Container ausgeführt. Dateien, die im Container außerhalb von AZ_BATCH_NODE_ROOT_DIR erstellt werden, werden möglicherweise nicht auf den Hostdatenträger wiedergegeben, was bedeutet, dass Batch-Datei-APIs nicht auf diese Dateien zugreifen können.
- resource_files
- list[ResourceFile]
Dateien, die unter diesem Element aufgeführt sind, befinden sich im Arbeitsverzeichnis des Tasks.
- environment_settings
- list[EnvironmentSetting]
- user_identity
- UserIdentity
Die Benutzeridentität, unter der startTask ausgeführt wird. Wenn der Task nicht angegeben wird, wird er als nicht administrativer Benutzer ausgeführt, der für den Task eindeutig ist.
- max_task_retry_count
- int
Die maximale Anzahl von Wiederholungsversuchen für den Task. Der Batch-Dienst führt einen Task erneut aus, wenn der Exitcode ungleich null ist. Beachten Sie, dass dieser Wert die Anzahl der Wiederholungen ausdrücklich steuert. Der Batch-Dienst versucht den Task einmal und kann es dann bis zu diesem Grenzwert wiederholen. Wenn die maximale Wiederholungsanzahl beispielsweise 3 beträgt, versucht Batch den Task bis zu 4 Mal (ein erster Versuch und drei Wiederholungen). Wenn die maximale Wiederholungsanzahl 0 ist, führt der Batch-Dienst den Vorgang nicht erneut aus. Wenn die maximale Wiederholungsanzahl -1 beträgt, wiederholt der Batch-Dienst die Aufgabe ohne Beschränkung. Dies wird jedoch nicht für einen Starttask oder einen Vorgang empfohlen. Der Standardwert ist 0 (keine Wiederholungsversuche).
- wait_for_success
- bool
Gibt an, ob der Batch-Dienst warten soll, bis die StartTask erfolgreich abgeschlossen wurde (d. h. das Beenden mit Exitcode 0), bevor Aufgaben auf dem Computeknoten geplant werden. Wenn true und startTask auf einem Knoten fehlschlägt, führt der Batch-Dienst die StartTask erneut auf die maximale Wiederholungsanzahl (maxTaskRetryCount) aus. Wenn der Task nach allen Wiederholungsversuchen immer noch nicht erfolgreich abgeschlossen wurde, markiert der Batch-Dienst den Knoten als unbrauchbar und plant keine Tasks dafür. Diese Bedingung kann über die Details zu Status und Fehlerinformationen des Computeknotens erkannt werden. Bei false wartet der Batch-Dienst nicht auf den Abschluss von StartTask. In diesem Fall können andere Tasks mit der Ausführung auf dem Computeknoten beginnen, während startTask noch ausgeführt wird. Und selbst wenn startTask fehlschlägt, werden neue Tasks weiterhin auf dem Computeknoten geplant. Der Standardwert ist „true“.
Methoden
as_dict |
Gibt ein Dict zurück, das mit json.dump JSONify sein kann. Bei erweiterter Verwendung kann optional ein Rückruf als Parameter verwendet werden: Key ist der Attributname, der in Python verwendet wird. Attr_desc ist ein Diktat von Metadaten. Enthält derzeit "type" mit dem Msrest-Typ und "key" mit dem RestAPI-codierten Schlüssel. Value ist der aktuelle Wert in diesem Objekt. Die zurückgegebene Zeichenfolge wird verwendet, um den Schlüssel zu serialisieren. Wenn der Rückgabetyp eine Liste ist, wird dies als hierarchische Ergebnisdikt betrachtet. Sehen Sie sich die drei Beispiele in dieser Datei an:
Wenn Sie eine XML-Serialisierung wünschen, können Sie die kwargs is_xml=True übergeben. |
deserialize |
Analysieren Sie eine str mithilfe der RestAPI-Syntax, und geben Sie ein Modell zurück. |
enable_additional_properties_sending | |
from_dict |
Analysieren eines Diktats mit dem angegebenen Schlüsselextraktor gibt ein Modell zurück. Berücksichtigen Sie standardmäßig Schlüsselextraktoren (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor und last_rest_key_case_insensitive_extractor) |
is_xml_model | |
serialize |
Gibt den JSON-Code zurück, der von diesem Modell an Azure gesendet wird. Dies ist ein Alias für as_dict(full_restapi_key_transformer, keep_readonly=False). Wenn Sie eine XML-Serialisierung wünschen, können Sie die kwargs is_xml=True übergeben. |
validate |
Überprüfen Sie dieses Modell rekursiv, und geben Sie eine Liste von ValidationError zurück. |
as_dict
Gibt ein Dict zurück, das mit json.dump JSONify sein kann.
Bei erweiterter Verwendung kann optional ein Rückruf als Parameter verwendet werden:
Key ist der Attributname, der in Python verwendet wird. Attr_desc ist ein Diktat von Metadaten. Enthält derzeit "type" mit dem Msrest-Typ und "key" mit dem RestAPI-codierten Schlüssel. Value ist der aktuelle Wert in diesem Objekt.
Die zurückgegebene Zeichenfolge wird verwendet, um den Schlüssel zu serialisieren. Wenn der Rückgabetyp eine Liste ist, wird dies als hierarchische Ergebnisdikt betrachtet.
Sehen Sie sich die drei Beispiele in dieser Datei an:
attribute_transformer
full_restapi_key_transformer
last_restapi_key_transformer
Wenn Sie eine XML-Serialisierung wünschen, können Sie die kwargs is_xml=True übergeben.
as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)
Parameter
- key_transformer
- <xref:function>
Eine Schlüsseltransformatorfunktion.
- keep_readonly
Gibt zurück
Ein JSON-kompatibles Diktatobjekt
Rückgabetyp
deserialize
Analysieren Sie eine str mithilfe der RestAPI-Syntax, und geben Sie ein Modell zurück.
deserialize(data, content_type=None)
Parameter
Gibt zurück
Eine instance dieses Modells
Ausnahmen
enable_additional_properties_sending
enable_additional_properties_sending()
from_dict
Analysieren eines Diktats mit dem angegebenen Schlüsselextraktor gibt ein Modell zurück.
Berücksichtigen Sie standardmäßig Schlüsselextraktoren (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor und last_rest_key_case_insensitive_extractor)
from_dict(data, key_extractors=None, content_type=None)
Parameter
- key_extractors
Gibt zurück
Eine instance dieses Modells
Ausnahmen
is_xml_model
is_xml_model()
serialize
Gibt den JSON-Code zurück, der von diesem Modell an Azure gesendet wird.
Dies ist ein Alias für as_dict(full_restapi_key_transformer, keep_readonly=False).
Wenn Sie eine XML-Serialisierung wünschen, können Sie die kwargs is_xml=True übergeben.
serialize(keep_readonly=False, **kwargs)
Parameter
- keep_readonly
- bool
Wenn Sie die schreibgeschützten Attribute serialisieren möchten
Gibt zurück
Ein JSON-kompatibles Diktatobjekt
Rückgabetyp
validate
Überprüfen Sie dieses Modell rekursiv, und geben Sie eine Liste von ValidationError zurück.
validate()
Gibt zurück
Eine Liste mit Validierungsfehlern
Rückgabetyp
Azure SDK for Python