Udostępnij za pośrednictwem


JobPreparationTask Klasa

Zadanie przygotowania zadania do uruchomienia przed wszystkimi zadaniami zadania w dowolnym węźle obliczeniowym.

Możesz użyć przygotowania zadania, aby przygotować węzeł do uruchamiania zadań dla zadania. Działania często wykonywane w ramach przygotowania zadania obejmują: pobieranie typowych plików zasobów używanych przez wszystkie zadania w zadaniu. Zadanie przygotowania zadania może pobrać te typowe pliki zasobów do udostępnionej lokalizacji w węźle. (AZ_BATCH_NODE_ROOT_DIRshared) lub uruchomienie usługi lokalnej w węźle, aby wszystkie zadania tego zadania mogły się z nim komunikować. Jeśli zadanie przygotowania zadania zakończy się niepowodzeniem (oznacza to, że wyczerpuje liczbę ponownych prób przed zamknięciem z kodem zakończenia 0), usługa Batch nie uruchomi zadań tego zadania w węźle. Węzeł obliczeniowy pozostaje niekwalifikowany do uruchamiania zadań tego zadania do momentu jego odtworzenia. Węzeł obliczeniowy pozostaje aktywny i może być używany do innych zadań. Zadanie przygotowania zadania może być uruchamiane wiele razy w tym samym węźle. W związku z tym należy napisać zadanie przygotowania zadania w celu obsługi ponownego wykonania. Jeśli węzeł zostanie uruchomiony ponownie, zadanie przygotowania zadania zostanie uruchomione ponownie w węźle obliczeniowym przed zaplanowanie jakiegokolwiek innego zadania zadania, jeśli ponownie uruchom polecenieOnNodeRebootAfterSuccess ma wartość true lub jeśli zadanie przygotowania zadania nie zostało wcześniej ukończone. Jeśli węzeł jest odtwarzany ponownie, zadanie przygotowania zadania jest uruchamiane ponownie przed zaplanowanie dowolnego zadania zadania. Usługa Batch ponowi próbę wykonania zadań po wyzwoleniu operacji odzyskiwania w węźle. Przykładowe operacje odzyskiwania obejmują (ale nie tylko) po ponownym uruchomieniu węzła w złej kondycji lub zniknięciu węzła obliczeniowego z powodu awarii hosta. Ponawianie prób z powodu operacji odzyskiwania jest niezależne i nie są liczone względem wartości maxTaskRetryCount. Nawet jeśli wartość 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ć przerwanie i ponowne uruchomienie bez spowodowania uszkodzenia lub zduplikowania danych. Najlepszym rozwiązaniem dla długotrwałych zadań jest użycie jakiejś formy tworzenia punktów kontrolnych.

Aby wysyłać na platformę Azure wszystkie wymagane parametry, należy wypełnić wszystkie wymagane parametry.

Dziedziczenie
JobPreparationTask

Konstruktor

JobPreparationTask(*, command_line: str, id: str = None, container_settings=None, resource_files=None, environment_settings=None, constraints=None, wait_for_success: bool = None, user_identity=None, rerun_on_node_reboot_after_success: bool = None, **kwargs)

Parametry

id
str
Wymagane

Identyfikator może zawierać dowolną kombinację znaków alfanumerycznych, w tym łączników i podkreśleń, i nie może zawierać więcej niż 64 znaków. Jeśli ta właściwość nie zostanie określona, usługa Batch przypisze wartość domyślną "jobpreparation". Żadne inne zadanie w zadaniu nie może mieć tego samego identyfikatora co zadanie przygotowania zadania. Jeśli spróbujesz przesłać zadanie o tym samym identyfikatorze, usługa Batch odrzuci żądanie z kodem błędu TaskIdSameAsJobPreparationTask; Jeśli bezpośrednio wywołujesz interfejs API REST, kod stanu HTTP to 409 (Konflikt).

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 uruchamiane zadanie przygotowania zadania. 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. Istnieje maksymalny rozmiar listy plików zasobów. Po przekroczeniu maksymalnego rozmiaru żądanie zakończy się niepowodzeniem, a kod błędu odpowiedzi to RequestEntityTooLarge. W takim przypadku należy zmniejszyć rozmiar kolekcji ResourceFiles. Można to osiągnąć przy użyciu plików .zip, pakietów aplikacji lub kontenerów platformy Docker.

environment_settings
list[EnvironmentSetting]
Wymagane
constraints
TaskConstraints
Wymagane

Ograniczenia, które mają zastosowanie do zadania przygotowania zadania.

wait_for_success
bool
Wymagane

Określa, czy usługa Batch powinna czekać na pomyślne zakończenie zadania przygotowania zadania przed zaplanowanie innych zadań zadania w węźle obliczeniowym. Zadanie przygotowania zadania zostało ukończone pomyślnie, jeśli zostanie zakończone z kodem zakończenia 0. Jeśli wartość true i zadanie przygotowania zadania zakończy się niepowodzeniem w węźle, usługa Batch ponowi próbę zadania podrzędnego przygotowania zadania do maksymalnej liczby ponownych prób (jak określono w elemecie ograniczeń). Jeśli zadanie nadal nie zostało ukończone pomyślnie po wszystkich ponownych próbach, usługa Batch nie będzie planować zadań zadania podrzędnego do węzła. Węzeł pozostaje aktywny i kwalifikuje się do uruchamiania zadań innych zadań. Jeśli wartość false, usługa Batch nie będzie czekać na ukończenie zadania przygotowania zadania. W takim przypadku inne zadania zadania podrzędne mogą rozpocząć wykonywanie w węźle obliczeniowym, gdy zadanie podrzędne przygotowania zadania jest nadal uruchomione; a nawet jeśli zadanie przygotowania zadania zakończy się niepowodzeniem, nowe zadania będą nadal zaplanowane w węźle obliczeniowym. Wartością domyślną jest true.

user_identity
UserIdentity
Wymagane

Tożsamość użytkownika, w ramach której jest uruchamiane zadanie przygotowania zadania. W przypadku pominięcia zadanie jest uruchamiane jako użytkownik niebędący administratorem unikatowym dla zadania w węzłach obliczeniowych systemu Windows lub użytkownik niebędący administratorem unikatowym dla puli w węzłach obliczeniowych systemu Linux.

rerun_on_node_reboot_after_success
bool
Wymagane

Czy usługa Batch powinna ponownie uruchomić zadanie przygotowania zadania po ponownym uruchomieniu węzła obliczeniowego. Zadanie przygotowania zadania jest zawsze uruchamiane ponownie, jeśli węzeł obliczeniowy jest odtwarzany z obrazu lub jeśli zadanie przygotowania zadania nie zostało ukończone (np. z powodu ponownego uruchomienia podczas uruchamiania zadania). W związku z tym zawsze należy napisać zadanie przygotowania zadania, aby było idempotentne i zachowywać się poprawnie, jeśli jest uruchamiane wiele razy. Wartością domyślną jest 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ę wartości 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ę wartości ValidationError.

validate()

Zwraca

Lista błędów weryfikacji

Typ zwracany