BatchJobPreparationTask interface
Zadanie przygotowania zadania do uruchomienia przed wszystkimi zadaniami zadania w dowolnym węźle obliczeniowym. Przygotowanie zadania umożliwia przygotowanie węzła do uruchamiania zadań podrzędnych 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 wspólne pliki zasobów do lokalizacji udostępnionej w węźle. (AZ_BATCH_NODE_ROOT_DIR\shared) 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 zakończeniem 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 dla 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 zaplanowanym innym zadaniem zadania, jeśli ponownie uruchomOnNodeRebootAfterSuccess 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łady operacji odzyskiwania obejmują (ale nie tylko) ponowne uruchomienie węzła w złej kondycji lub zniknięcie 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 dla długotrwałych zadań jest użycie jakiejś formy tworzenia punktów kontrolnych.
Właściwości
| command |
Linia poleceń zadania Przygotowania do Pracy. 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, powinieneś wywołać powłokę w wierszu poleceń, na przykład używając "cmd /c MyCommand" w Windows lub "/bin/sh -c MyCommand" w Linuksie. Jeśli wiersz polecenia odwołuje się do ścieżek plików, powinien użyć ścieżki względnej (względem katalogu roboczego zadania) lub użyć zmiennej środowiskowej udostępnionej w usłudze Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| constraints | Ograniczenia dotyczące zadania Przygotowania do Pracy. |
| container |
Ustawienia kontenera, pod którym uruchamia się zadanie Przygotowania Zadania. Gdy to zostanie określone, wszystkie katalogi rekurencyjnie poniżej AZ_BATCH_NODE_ROOT_DIR (korzeń katalogów Azure Batch na węźle) są mapowane do kontenera, wszystkie zmienne środowiskowe Task są mapowane do kontenera, a wiersz poleceń Task jest wykonywany w kontenerze. Pliki wytworzone w kontenerze poza AZ_BATCH_NODE_ROOT_DIR mogą nie być odzwierciedlone na dysku hosta, co oznacza, że API plików wsadowych nie będą miały dostępu do tych plików. |
| environment |
Lista ustawień zmiennych środowiskowych dla zadania Przygotowania do Pracy. |
| id | Ciąg znaków, który jednoznacznie identyfikuje Zadanie Przygotowania Zadania w obrębie Zadania. ID może zawierać dowolną kombinację znaków alfanumerycznych, w tym łączników i podkreśleń, i nie może zawierać więcej niż 64 znaki. Jeśli nie określisz tej właściwości, usługa Batch przypisuje domyślną wartość 'jobpreparation'. Żadne inne Zadanie w Zadaniu nie może mieć takiego samego identyfikatora jak Zadanie Przygotowania Zadania. Jeśli spróbujesz przesłać zadanie o tym samym identyfikatorze, usługa Batch odrzuca żądanie kodem błędu TaskIdSameAsJobPreparationTask; jeśli wywołujesz bezpośrednio REST API, kod statusu HTTP to 409 (Konflikt). |
| rerun |
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 zostanie ponownie nainstalowany lub jeśli Zadanie Przygotowania Zadania nie zostało ukończone (np. gdy restart nastąpił podczas działania zadania). Dlatego zawsze powinieneś pisać zadanie przygotowania do pracy, aby było idempotentne i zachowywało się poprawnie, jeśli jest wykonywane wielokrotnie. Wartość domyślna to true. |
| resource |
Lista plików, które usługa Batch pobierze do węzła obliczeniowego przed uruchomieniem wiersza polecenia. Pliki wymienione w ramach tego elementu 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 plików ResourceFiles. Można to osiągnąć przy użyciu plików .zip, pakietów aplikacji lub kontenerów platformy Docker. |
| user |
Tożsamość użytkownika, pod którą uruchamiane jest zadanie Przygotowania Pracy. Jeśli zostanie pominięte, zadanie działa jako użytkownik nieadministracyjny, unikalny dla zadania na węzłach komputerowych Windows, lub jako użytkownik nieadministracyjny unikalny dla Poolu na węzłach obliczeniowych Linuksa. |
| wait |
Czy usługa wsadowa powinna czekać na pomyślne zakończenie zadania przygotowania zadania, zanim zaplanuje inne zadania zadania na węźle obliczeniowym. Zadanie Przygotowania do Zadania zostało pomyślnie zakończone, jeśli zakończyło się kodem wyjścia 0. Jeśli to prawda, a zadanie przygotowania zadania na węźle nie powiodło, usługa wsadowa powtarza zadanie do maksymalnej liczby powtórzeń (zgodnie z elementem ograniczeń). Jeśli zadanie nadal nie zostało pomyślnie ukończone po wszystkich próbach, usługa wsadowa nie zaplanuje zadań zadania tego zadania do węzła. Węzeł pozostaje aktywny i może uruchamiać zadania innych zadań. Jeśli to nieprawda, usługa Batch nie poczeka na zakończenie zadania Przygotowania Zadania. W takim przypadku inne Zadania Zadania mogą rozpocząć się na Węźle Obliczeniowym, podczas gdy Zadanie Przygotowania Zadania nadal trwa; a nawet jeśli zadanie Przygotowania Zadania się nie powiedzie, nowe Zadania będą nadal planowane na węźle obliczeniowym. Wartość domyślna to true. |
Szczegóły właściwości
commandLine
Linia poleceń zadania Przygotowania do Pracy. 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, powinieneś wywołać powłokę w wierszu poleceń, na przykład używając "cmd /c MyCommand" w Windows lub "/bin/sh -c MyCommand" w Linuksie. Jeśli wiersz polecenia odwołuje się do ścieżek plików, powinien użyć ścieżki względnej (względem katalogu roboczego zadania) lub użyć zmiennej środowiskowej udostępnionej w usłudze Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Wartość właściwości
string
constraints
Ograniczenia dotyczące zadania Przygotowania do Pracy.
constraints?: BatchTaskConstraints
Wartość właściwości
containerSettings
Ustawienia kontenera, pod którym uruchamia się zadanie Przygotowania Zadania. Gdy to zostanie określone, wszystkie katalogi rekurencyjnie poniżej AZ_BATCH_NODE_ROOT_DIR (korzeń katalogów Azure Batch na węźle) są mapowane do kontenera, wszystkie zmienne środowiskowe Task są mapowane do kontenera, a wiersz poleceń Task jest wykonywany w kontenerze. Pliki wytworzone w kontenerze poza AZ_BATCH_NODE_ROOT_DIR mogą nie być odzwierciedlone na dysku hosta, co oznacza, że API plików wsadowych nie będą miały dostępu do tych plików.
containerSettings?: BatchTaskContainerSettings
Wartość właściwości
environmentSettings
Lista ustawień zmiennych środowiskowych dla zadania Przygotowania do Pracy.
environmentSettings?: EnvironmentSetting[]
Wartość właściwości
id
Ciąg znaków, który jednoznacznie identyfikuje Zadanie Przygotowania Zadania w obrębie Zadania. ID może zawierać dowolną kombinację znaków alfanumerycznych, w tym łączników i podkreśleń, i nie może zawierać więcej niż 64 znaki. Jeśli nie określisz tej właściwości, usługa Batch przypisuje domyślną wartość 'jobpreparation'. Żadne inne Zadanie w Zadaniu nie może mieć takiego samego identyfikatora jak Zadanie Przygotowania Zadania. Jeśli spróbujesz przesłać zadanie o tym samym identyfikatorze, usługa Batch odrzuca żądanie kodem błędu TaskIdSameAsJobPreparationTask; jeśli wywołujesz bezpośrednio REST API, kod statusu HTTP to 409 (Konflikt).
id?: string
Wartość właściwości
string
rerunOnNodeRebootAfterSuccess
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 zostanie ponownie nainstalowany lub jeśli Zadanie Przygotowania Zadania nie zostało ukończone (np. gdy restart nastąpił podczas działania zadania). Dlatego zawsze powinieneś pisać zadanie przygotowania do pracy, aby było idempotentne i zachowywało się poprawnie, jeśli jest wykonywane wielokrotnie. Wartość domyślna to true.
rerunOnNodeRebootAfterSuccess?: boolean
Wartość właściwości
boolean
resourceFiles
Lista plików, które usługa Batch pobierze do węzła obliczeniowego przed uruchomieniem wiersza polecenia. Pliki wymienione w ramach tego elementu 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 plików ResourceFiles. Można to osiągnąć przy użyciu plików .zip, pakietów aplikacji lub kontenerów platformy Docker.
resourceFiles?: ResourceFile[]
Wartość właściwości
userIdentity
Tożsamość użytkownika, pod którą uruchamiane jest zadanie Przygotowania Pracy. Jeśli zostanie pominięte, zadanie działa jako użytkownik nieadministracyjny, unikalny dla zadania na węzłach komputerowych Windows, lub jako użytkownik nieadministracyjny unikalny dla Poolu na węzłach obliczeniowych Linuksa.
userIdentity?: UserIdentity
Wartość właściwości
waitForSuccess
Czy usługa wsadowa powinna czekać na pomyślne zakończenie zadania przygotowania zadania, zanim zaplanuje inne zadania zadania na węźle obliczeniowym. Zadanie Przygotowania do Zadania zostało pomyślnie zakończone, jeśli zakończyło się kodem wyjścia 0. Jeśli to prawda, a zadanie przygotowania zadania na węźle nie powiodło, usługa wsadowa powtarza zadanie do maksymalnej liczby powtórzeń (zgodnie z elementem ograniczeń). Jeśli zadanie nadal nie zostało pomyślnie ukończone po wszystkich próbach, usługa wsadowa nie zaplanuje zadań zadania tego zadania do węzła. Węzeł pozostaje aktywny i może uruchamiać zadania innych zadań. Jeśli to nieprawda, usługa Batch nie poczeka na zakończenie zadania Przygotowania Zadania. W takim przypadku inne Zadania Zadania mogą rozpocząć się na Węźle Obliczeniowym, podczas gdy Zadanie Przygotowania Zadania nadal trwa; a nawet jeśli zadanie Przygotowania Zadania się nie powiedzie, nowe Zadania będą nadal planowane na węźle obliczeniowym. Wartość domyślna to true.
waitForSuccess?: boolean
Wartość właściwości
boolean