Udostępnij za pośrednictwem


JobManagerTask Klasa

Określa szczegóły zadania Menedżera zadań.

Zadanie Menedżera zadań jest uruchamiane automatycznie po utworzeniu zadania. Usługa Batch próbuje zaplanować zadanie Menedżera zadań przed innymi zadaniami w zadaniu. Podczas zmniejszania puli usługa Batch próbuje zachować węzły, w których zadania menedżera zadań są uruchamiane tak długo, jak to możliwe (czyli węzły obliczeniowe z uruchomioną "normalną" zadaniami są usuwane przed węzłami obliczeniowymi z uruchomionymi zadaniami Menedżera zadań). Gdy zadanie Menedżera zadań kończy się niepowodzeniem i musi zostać uruchomione ponownie, system próbuje zaplanować zadanie o najwyższym priorytetzie. Jeśli nie ma dostępnych bezczynnych węzłów obliczeniowych, system może zakończyć jedną z uruchomionych zadań w puli i zwrócić ją do kolejki, aby umożliwić ponowne uruchomienie zadania Menedżera zadań. Należy pamiętać, że zadanie Menedżera zadań w jednym zadaniu nie ma priorytetu nad zadaniami w innych zadaniach. W przypadku zadań obserwowane są tylko priorytety na poziomie zadania. Jeśli na przykład menedżer zadań w zadaniu o priorytecie 0 musi zostać uruchomiony ponownie, nie spowoduje to przesiedleń zadań o priorytecie 1. 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
JobManagerTask

Konstruktor

JobManagerTask(*, id: str, command_line: str, display_name: str = None, container_settings=None, resource_files=None, output_files=None, environment_settings=None, constraints=None, required_slots: int = None, kill_job_on_completion: bool = None, user_identity=None, run_exclusive: bool = None, application_package_references=None, authentication_token_settings=None, allow_low_priority_node: bool = None, **kwargs)

Parametry

id
str
Wymagane

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.

display_name
str
Wymagane

Nie musi być unikatowa i może zawierać znaki Unicode o maksymalnej długości 1024.

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 rozszerzenie zmiennej środowiskowej. Jeśli chcesz skorzystać z takich funkcji, należy wywołać powłokę w wierszu polecenia, na przykład przy użyciu polecenia "cmd /c MyCommand" w systemie Windows lub "/bin/sh -c MyCommand" w systemie Linux. Jeśli wiersz polecenia odnosi się do ścieżek plików, należy użyć ścieżki 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 Menedżera zadań. Jeśli pula, która będzie uruchamiać to zadanie, ma ustawiony kontenerKonfiguracja, musi być również ustawiona. Jeśli pula, która uruchomi to zadanie, nie ma ustawionego konteneraKonfiguracja, nie może być ustawiona. Po określeniu tej wartości wszystkie katalogi cyklicznie poniżej AZ_BATCH_NODE_ROOT_DIR (katalog główny katalogów Azure Batch w węźle) są mapowane na kontener, 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.

output_files
list[OutputFile]
Wymagane

W przypadku zadań z wieloma wystąpieniami pliki zostaną przekazane tylko z węzła obliczeniowego, na którym jest wykonywane zadanie podstawowe.

environment_settings
list[EnvironmentSetting]
Wymagane
constraints
TaskConstraints
Wymagane

Ograniczenia, które mają zastosowanie do zadania Menedżera zadań.

required_slots
int
Wymagane

Liczba miejsc planowania, których zadanie wymaga uruchomienia. Wartość domyślna to 1. Zadanie można zaplanować tylko w węźle obliczeniowym, jeśli węzeł ma wystarczającą ilość dostępnych wolnych miejsc planowania. W przypadku zadań z wieloma wystąpieniami ta właściwość nie jest obsługiwana i nie może być określona.

kill_job_on_completion
bool
Wymagane

Czy ukończenie zadania Menedżera zadań oznacza ukończenie całego zadania. Jeśli ma wartość true, gdy zadanie Menedżera zadań zostanie ukończone, usługa Batch oznaczy zadanie jako ukończone. Jeśli jakiekolwiek zadania są nadal uruchomione w tej chwili (inne niż wydanie zadania), te zadania zostaną zakończone. Jeśli wartość false, ukończenie zadania Menedżera zadań nie ma wpływu na stan zadania. W takim przypadku należy użyć atrybutu onAllTasksComplete, aby zakończyć zadanie, albo jawnie zakończyć zadanie klienta lub użytkownika. Przykładem jest utworzenie zestawu zadań przez Menedżera zadań, ale nie ma dalszej roli w ich wykonywaniu. Wartością domyślną jest true. Jeśli używasz atrybutów onAllTasksComplete i onTaskFailure, aby kontrolować okres istnienia zadania, a następnie używasz zadania Menedżera zadań tylko do utworzenia zadań zadania (nie do monitorowania postępu), należy ustawić wartość killJobOnCompletion na wartość false.

user_identity
UserIdentity
Wymagane

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

run_exclusive
bool
Wymagane

Czy zadanie Menedżera zadań wymaga wyłącznego użycia węzła obliczeniowego, w którym jest uruchamiany. Jeśli to prawda, żadne inne zadania nie będą uruchamiane w tym samym węźle tak długo, jak menedżer zadań jest uruchomiony. Jeśli wartość false, inne zadania mogą być uruchamiane jednocześnie z Menedżerem zadań w węźle obliczeniowym. Zadanie Menedżera zadań jest zwykle liczone względem współbieżnego limitu zadań węzła obliczeniowego, dlatego jest to istotne tylko wtedy, gdy węzeł obliczeniowy zezwala na wiele współbieżnych zadań. Wartością domyślną jest true.

application_package_references
list[ApplicationPackageReference]
Wymagane

Pakiety aplikacji są pobierane i wdrażane w udostępnionym katalogu, a nie w katalogu roboczym Zadania. W związku z tym jeśli pakiet aplikacji, do których odwołuje się odwołanie, znajduje się już w węźle obliczeniowym i jest aktualny, nie jest on pobierany ponownie; używana jest istniejąca kopia w węźle obliczeniowym. Jeśli nie można zainstalować przywoływanego pakietu aplikacji, na przykład z powodu usunięcia pakietu lub pobrania nie powiodło się, zadanie kończy się niepowodzeniem.

authentication_token_settings
AuthenticationTokenSettings
Wymagane

Ustawienia tokenu uwierzytelniania, którego zadanie może użyć do wykonywania operacji usługi Batch. Jeśli ta właściwość jest ustawiona, usługa Batch udostępnia zadanie z tokenem uwierzytelniania, który może służyć do uwierzytelniania operacji usługi Batch bez konieczności posiadania klucza dostępu do konta. Token jest dostarczany za pośrednictwem zmiennej środowiskowej AZ_BATCH_AUTHENTICATION_TOKEN. Operacje, które zadanie może wykonać przy użyciu tokenu, zależą od ustawień. Na przykład zadanie może zażądać uprawnień zadania w celu dodania innych zadań do zadania lub sprawdzenia stanu zadania lub innych zadań w ramach zadania.

allow_low_priority_node
bool
Wymagane

Czy zadanie Menedżera zadań może być uruchamiane w węźle obliczeniowym typu spot/low-priority. 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 w interfejsie 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 uważane za hierarchiczne 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 wyodrębniającego klucz zwraca model.

Domyślnie należy wziąć pod uwagę wyodrębniacze 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 w interfejsie 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 uważane za hierarchiczne 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 przekształcania klucza.

keep_readonly
wartość domyślna: True

Zwraca

Obiekt zgodny z JSON w formacie 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 kod 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 wyodrębniającego klucz zwraca model.

Domyślnie należy wziąć pod uwagę wyodrębniacze 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 readonly

Zwraca

Obiekt zgodny z JSON w formacie JSON

Typ zwracany

validate

Zweryfikuj ten model cyklicznie i zwróć listę wartości ValidationError.

validate()

Zwraca

Lista błędów weryfikacji

Typ zwracany