Udostępnij za pośrednictwem


StartTask Klasa

Zadanie uruchamiane po dołączeniu węzła do puli w usłudze Azure Batch lub po ponownym uruchomieniu lub ponownym uruchomieniu węzła obliczeniowego lub ponownym obrazie.

Usługa Batch ponowi próbę wykonania zadań po wyzwoleniu operacji odzyskiwania w węźle. Przykłady operacji odzyskiwania obejmują (ale nie są ograniczone do) po ponownym uruchomieniu węzła w złej kondycji lub zniknięciu węzła obliczeniowego z powodu awarii hosta. Ponowne próby z powodu operacji odzyskiwania są niezależne i nie są liczone względem parametru maxTaskRetryCount. Nawet jeśli parametr maxTaskRetryCount wynosi 0, może wystąpić wewnętrzna ponowna próba spowodowana operacją odzyskiwania. W związku z tym wszystkie zadania powinny być idempotentne. Oznacza to, że zadania muszą tolerować przerywanie i ponowne uruchamianie bez powodowania uszkodzenia lub duplikowania danych. Najlepszym rozwiązaniem w przypadku długotrwałych zadań jest użycie jakiejś formy tworzenia punktów kontrolnych. W niektórych przypadkach funkcja StartTask może zostać uruchomiona ponownie, mimo że węzeł obliczeniowy nie został ponownie uruchomiony. Należy zachować szczególną ostrożność, aby uniknąć zadań StartTasks, które tworzą proces przerwania lub instalują/uruchamiają usługi z katalogu roboczego StartTask, ponieważ uniemożliwi to usłudze Batch ponowne uruchomienie zadania StartTask.

Wszystkie wymagane parametry muszą zostać wypełnione w celu wysłania ich na platformę Azure.

Dziedziczenie
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)

Parametry

command_line
str
Wymagane

Wymagane. Wiersz polecenia nie jest uruchamiany w powłoce i dlatego nie może korzystać z funkcji powłoki, takich jak rozszerzanie zmiennych środowiskowych. Jeśli chcesz korzystać z takich funkcji, należy wywołać powłokę w wierszu polecenia, na przykład za pomocą polecenia "cmd /c MyCommand" w systemie Windows lub "/bin/sh -c MyCommand" w systemie Linux. Jeśli wiersz polecenia odwołuje się do ścieżek plików, powinien użyć ścieżki względnej (względnej względem katalogu roboczego zadania) lub użyć zmiennej środowiskowej udostępnionej w usłudze Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

container_settings
TaskContainerSettings
Wymagane

Ustawienia kontenera, w którym jest uruchamiana funkcja StartTask. Po określeniu tego ustawienia wszystkie katalogi cyklicznie poniżej AZ_BATCH_NODE_ROOT_DIR (katalog główny katalogów Azure Batch w węźle) są mapowane do kontenera, wszystkie zmienne środowiskowe zadania są mapowane do kontenera, a wiersz polecenia zadania jest wykonywany w kontenerze. Pliki utworzone w kontenerze poza AZ_BATCH_NODE_ROOT_DIR mogą nie zostać odzwierciedlone na dysku hosta, co oznacza, że interfejsy API plików usługi Batch nie będą mogły uzyskać dostępu do tych plików.

resource_files
list[ResourceFile]
Wymagane

Pliki wymienione w tym elemecie znajdują się w katalogu roboczym zadania.

environment_settings
list[EnvironmentSetting]
Wymagane
user_identity
UserIdentity
Wymagane

Tożsamość użytkownika, w ramach której jest uruchamiana funkcja StartTask. W przypadku pominięcia zadanie jest uruchamiane jako użytkownik niebędący administratorem unikatowym dla zadania.

max_task_retry_count
int
Wymagane

Maksymalna liczba ponownych prób wykonania zadania. Usługa Batch ponawia próbę zadania, jeśli jego kod zakończenia jest niezerowy. Należy pamiętać, że ta wartość określa w szczególności liczbę ponownych prób. Usługa Batch spróbuje raz wykonać zadanie, a następnie może ponowić próbę do tego limitu. Jeśli na przykład maksymalna liczba ponownych prób wynosi 3, usługa Batch próbuje wykonać zadanie maksymalnie 4 razy (jedna początkowa próba i 3 ponownych prób). Jeśli maksymalna liczba ponownych prób wynosi 0, usługa Batch nie ponowi próby wykonania zadania. Jeśli maksymalna liczba ponownych prób wynosi -1, usługa Batch ponawia próbę zadania bez limitu, jednak nie jest to zalecane w przypadku zadania podrzędnego uruchamiania ani żadnego zadania podrzędnego. Wartość domyślna to 0 (brak ponownych prób).

wait_for_success
bool
Wymagane

Określa, czy usługa Batch powinna czekać na pomyślne zakończenie zadania StartTask (czyli zakończenie pracy z kodem zakończenia 0) przed zaplanowaniem jakichkolwiek zadań w węźle obliczeniowym. Jeśli wartość true i zadanie StartTask zakończy się niepowodzeniem w węźle, usługa Batch ponawia próbę uruchomienia do maksymalnej liczby ponownych prób (maxTaskRetryCount). Jeśli zadanie nadal nie zostało ukończone pomyślnie po wszystkich ponownych próbach, usługa Batch oznacza węzeł bezużyteczny i nie będzie planować zadań do niego. Ten warunek można wykryć za pomocą szczegółów informacji o stanie węzła obliczeniowego i błędzie. Jeśli wartość false, usługa Batch nie będzie czekać na ukończenie zadania StartTask. W takim przypadku inne zadania mogą rozpocząć wykonywanie w węźle obliczeniowym, gdy zadanie StartTask jest nadal uruchomione; a nawet jeśli zadanie StartTask zakończy się niepowodzeniem, nowe zadania będą nadal zaplanowane w węźle obliczeniowym. Wartość domyślna to true.

Metody

as_dict

Zwróć dykt, który może być JSONify przy użyciu pliku json.dump.

Użycie zaawansowane może opcjonalnie używać wywołania zwrotnego jako parametru:

Klucz to nazwa atrybutu używana w języku Python. Attr_desc to dykt metadanych. Obecnie zawiera ciąg "type" z typem msrest i kluczem zakodowanym za pomocą interfejsu RESTAPI. Wartość jest bieżącą wartością w tym obiekcie.

Zwrócony ciąg będzie używany do serializacji klucza. Jeśli zwracany typ jest listą, jest to uznawane za hierarchiczny dykt wyniku.

Zobacz trzy przykłady w tym pliku:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Jeśli chcesz serializacji XML, możesz przekazać kwargs is_xml=True.

deserialize

Analizowanie ciągu przy użyciu składni restAPI i zwracanie modelu.

enable_additional_properties_sending
from_dict

Przeanalizuj dykt przy użyciu danego modułu wyodrębniającego klucz, który zwraca model.

Domyślnie należy rozważyć wyodrębnianie kluczy (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor i last_rest_key_case_insensitive_extractor)

is_xml_model
serialize

Zwróć kod JSON, który zostanie wysłany na platformę Azure z tego modelu.

Jest to alias as_dict (full_restapi_key_transformer, keep_readonly=False).

Jeśli chcesz serializacji XML, możesz przekazać kwargs is_xml=True.

validate

Zweryfikuj ten model cyklicznie i zwróć listę błędu ValidationError.

as_dict

Zwróć dykt, który może być JSONify przy użyciu pliku json.dump.

Użycie zaawansowane może opcjonalnie używać wywołania zwrotnego jako parametru:

Klucz to nazwa atrybutu używana w języku Python. Attr_desc to dykt metadanych. Obecnie zawiera ciąg "type" z typem msrest i kluczem zakodowanym za pomocą interfejsu RESTAPI. Wartość jest bieżącą wartością w tym obiekcie.

Zwrócony ciąg będzie używany do serializacji klucza. Jeśli zwracany typ jest listą, jest to uznawane za hierarchiczny dykt wyniku.

Zobacz trzy przykłady w tym pliku:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Jeśli chcesz serializacji XML, możesz przekazać kwargs is_xml=True.

as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)

Parametry

key_transformer
<xref:function>

Funkcja transformatora klucza.

keep_readonly
wartość domyślna: True

Zwraca

Obiekt zgodny z dyktacją JSON

Typ zwracany

deserialize

Analizowanie ciągu przy użyciu składni restAPI i zwracanie modelu.

deserialize(data, content_type=None)

Parametry

data
str
Wymagane

Str używający struktury RestAPI. Domyślnie dane JSON.

content_type
str
wartość domyślna: None

Domyślnie w formacie JSON ustaw wartość application/xml, jeśli plik XML.

Zwraca

Wystąpienie tego modelu

Wyjątki

DeserializationError if something went wrong

enable_additional_properties_sending

enable_additional_properties_sending()

from_dict

Przeanalizuj dykt przy użyciu danego modułu wyodrębniającego klucz, który zwraca model.

Domyślnie należy rozważyć wyodrębnianie kluczy (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor i last_rest_key_case_insensitive_extractor)

from_dict(data, key_extractors=None, content_type=None)

Parametry

data
dict
Wymagane

Dykt używający struktury RestAPI

content_type
str
wartość domyślna: None

Domyślnie w formacie JSON ustaw wartość application/xml, jeśli plik XML.

key_extractors
wartość domyślna: None

Zwraca

Wystąpienie tego modelu

Wyjątki

DeserializationError if something went wrong

is_xml_model

is_xml_model()

serialize

Zwróć kod JSON, który zostanie wysłany na platformę Azure z tego modelu.

Jest to alias as_dict (full_restapi_key_transformer, keep_readonly=False).

Jeśli chcesz serializacji XML, możesz przekazać kwargs is_xml=True.

serialize(keep_readonly=False, **kwargs)

Parametry

keep_readonly
bool
wartość domyślna: False

Jeśli chcesz serializować atrybuty tylko do odczytu

Zwraca

Obiekt zgodny z dyktacją JSON

Typ zwracany

validate

Zweryfikuj ten model cyklicznie i zwróć listę błędu ValidationError.

validate()

Zwraca

Lista błędów walidacji

Typ zwracany