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. 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
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]
Pliki wymienione w tym elemecie znajdują się w katalogu roboczym zadania.
- environment_settings
- list[EnvironmentSetting]
- user_identity
- UserIdentity
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
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
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:
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
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
- content_type
- str
Domyślnie w formacie JSON ustaw wartość application/xml, jeśli plik XML.
Zwraca
Wystąpienie tego modelu
Wyjątki
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
- content_type
- str
Domyślnie w formacie JSON ustaw wartość application/xml, jeśli plik XML.
- key_extractors
Zwraca
Wystąpienie tego modelu
Wyjątki
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
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
Azure SDK for Python