BatchStartTask interface
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 niektórych przypadkach funkcja StartTask może zostać ponownie uruchomiona, 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.
Właściwości
| command |
Wiersz polecenia starttask. 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 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ę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). |
| container |
Ustawienia kontenera, w którym jest uruchamiana funkcja StartTask. Po określeniu tej wartości wszystkie katalogi rekursywnie poniżej AZ_BATCH_NODE_ROOT_DIR (katalogi główne katalogów usługi 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. |
| environment |
Lista ustawień zmiennych środowiskowych dla elementu StartTask. |
| max |
Maksymalna liczba ponownych prób wykonania zadania. Usługa Batch ponawia próbę zadania, jeśli jego kod zakończenia jest inny niżzer. Należy pamiętać, że ta wartość steruje 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 do 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 (bez ponownych prób). |
| resource |
Lista plików, które usługa Batch pobierze do węzła obliczeniowego przed uruchomieniem wiersza polecenia. 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. Pliki wymienione w ramach tego elementu znajdują się w katalogu roboczym zadania. |
| user |
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. |
| wait |
Czy usługa Batch powinna czekać na pomyślne zakończenie zadania StartTask (czyli zakończenie z kodem zakończenia 0) przed zaplanowaniem zadań w węźle obliczeniowym. Jeśli wartość true i parametr StartTask zakończy się niepowodzeniem w węźle, usługa Batch ponawia próbę do maksymalnej liczby ponownych prób (maxTaskRetryCount). Jeśli zadanie nadal nie zostało ukończone pomyślnie po 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 stanu węzła obliczeniowego i informacji o 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 funkcja StartTask jest nadal uruchomiona; 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. |
Szczegóły właściwości
commandLine
Wiersz polecenia starttask. 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 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ę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
containerSettings
Ustawienia kontenera, w którym jest uruchamiana funkcja StartTask. Po określeniu tej wartości wszystkie katalogi rekursywnie poniżej AZ_BATCH_NODE_ROOT_DIR (katalogi główne katalogów usługi 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.
containerSettings?: BatchTaskContainerSettings
Wartość właściwości
environmentSettings
Lista ustawień zmiennych środowiskowych dla elementu StartTask.
environmentSettings?: EnvironmentSetting[]
Wartość właściwości
maxTaskRetryCount
Maksymalna liczba ponownych prób wykonania zadania. Usługa Batch ponawia próbę zadania, jeśli jego kod zakończenia jest inny niżzer. Należy pamiętać, że ta wartość steruje 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 do 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 (bez ponownych prób).
maxTaskRetryCount?: number
Wartość właściwości
number
resourceFiles
Lista plików, które usługa Batch pobierze do węzła obliczeniowego przed uruchomieniem wiersza polecenia. 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. Pliki wymienione w ramach tego elementu znajdują się w katalogu roboczym zadania.
resourceFiles?: ResourceFile[]
Wartość właściwości
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.
userIdentity?: UserIdentity
Wartość właściwości
waitForSuccess
Czy usługa Batch powinna czekać na pomyślne zakończenie zadania StartTask (czyli zakończenie z kodem zakończenia 0) przed zaplanowaniem zadań w węźle obliczeniowym. Jeśli wartość true i parametr StartTask zakończy się niepowodzeniem w węźle, usługa Batch ponawia próbę do maksymalnej liczby ponownych prób (maxTaskRetryCount). Jeśli zadanie nadal nie zostało ukończone pomyślnie po 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 stanu węzła obliczeniowego i informacji o 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 funkcja StartTask jest nadal uruchomiona; 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.
waitForSuccess?: boolean
Wartość właściwości
boolean