BatchJobManagerTask interface
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 uruchomionymi zadaniami normalnymi 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ć go 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ł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
| allow |
Czy zadanie Job Manager może działać na węźle Spot/Low-Priority Compute. Wartość domyślna to true. |
| application |
Lista pakietów aplikacji, które usługa wsadowa wdroży do węzła obliczeniowego przed uruchomieniem linii poleceń. Pakiety aplikacji są pobierane i wdrażane w katalogu współdzielonym, a nie w katalogu roboczym Task. Dlatego jeśli odwołany pakiet aplikacji jest już na węźle Compute i jest aktualny, nie jest ponownie pobierany; używana jest istniejąca kopia na węźle obliczeniowym. Jeśli odwołany pakiet aplikacji nie może zostać zainstalowany, na przykład dlatego, że pakiet został usunięty lub pobranie się nie powiodło, zadanie nie może zostać załatwione. |
| command |
Linia poleceń zadania Menedżera Zadań. 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 Menedżera Zadań. |
| container |
Ustawienia kontenera, pod którym działa Task Manager Task Manager. Jeśli pula uruchamiająca to zadanie ma ustawioną containerConfiguration, to również musi być ustawiona. Jeśli pula, która wykona to zadanie, nie ma ustawionej containerConfiguration, nie może być ustawiona. 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. |
| display |
Nazwa wyświetlana zadania Menedżera Zadań. Nie musi być unikalny i może zawierać dowolne znaki Unicode do maksymalnej długości 1024. |
| environment |
Lista ustawień zmiennych środowiskowych dla zadania Menedżera Zadań. |
| id | Ciąg znaków, który jednoznacznie identyfikuje zadanie Menedżera Zadań w ramach 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. |
| kill |
Czy ukończenie zadania Kierownika Zadań oznacza ukończenie całego Zadania. Jeśli to prawda, po zakończeniu zadania Menedżera Zadań usługa Batch oznacza zadanie jako ukończone. Jeśli w tym czasie nadal działają jakieś zadania (poza Job Release), są one zakończane. Jeśli nieprawda, zakończenie zadania Menedżera Zadań nie wpływa na status Zadania. W takim przypadku powinieneś użyć atrybutu onAllTasksComplete do zakończenia zadania lub poprosić klienta lub użytkownika, by zakończył zadanie wyraźnie. Przykładem jest sytuacja, gdy Menedżer Zadań tworzy zestaw Zadań, ale nie odgrywa dalszej roli w ich wykonaniu. Wartość domyślna to true. Jeśli używasz atrybutów onAllTasksComplete i onTaskFailure do kontrolowania czasu życia Zadania, a Menedżera Zadań używasz tylko do tworzenia Zadań dla zadania (nie do monitorowania postępów), to ważne jest, aby ustawić killJobOnCompletion na false. |
| output |
Lista plików, które usługa wsadowa zagra z węzła obliczeniowego po uruchomieniu linii poleceń. W przypadku zadań wieloinstancjowych pliki będą przesyłane wyłącznie z węzła obliczeniowego, na którym wykonywane jest główne zadanie. |
| required |
Liczba slotów harmonogramowych wymaganych do wykonania zadania. Wartością domyślną jest 1. Zadanie może być zaplanowane do uruchomienia na węźle obliczeniowym tylko wtedy, gdy węzeł ma wystarczająco dużo wolnych slotów do planowania. Dla zadań wieloinstancjowych ta właściwość nie jest obsługiwana i nie może być określana. |
| 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. |
| run |
Czy zadanie Job Manager wymaga wyłącznego użycia węzła obliczeniowego, w którym działa. Jeśli to prawda, żadne inne zadania nie będą działać na tym samym węźle tak długo, jak działa menedżer zadań. Jeśli to nieprawda, inne zadania mogą działać jednocześnie z Menedżerem zadań na węźle obliczeniowym. Zadanie Menedżera Zadań normalnie liczy się do limitu współbieżnych zadań węzła obliczeniowego, więc jest to istotne tylko wtedy, gdy węzeł obliczeniowy pozwala na wiele równoczesnych zadań. Wartość domyślna to true. |
| user |
Tożsamość użytkownika, pod którą działa zadanie Menedżera Zadań. Jeśli zostanie pominięte, Zadanie działa jako użytkownik nieadministracyjny, unikalny dla Zadania. |
Szczegóły właściwości
allowLowPriorityNode
Czy zadanie Job Manager może działać na węźle Spot/Low-Priority Compute. Wartość domyślna to true.
allowLowPriorityNode?: boolean
Wartość właściwości
boolean
applicationPackageReferences
Lista pakietów aplikacji, które usługa wsadowa wdroży do węzła obliczeniowego przed uruchomieniem linii poleceń. Pakiety aplikacji są pobierane i wdrażane w katalogu współdzielonym, a nie w katalogu roboczym Task. Dlatego jeśli odwołany pakiet aplikacji jest już na węźle Compute i jest aktualny, nie jest ponownie pobierany; używana jest istniejąca kopia na węźle obliczeniowym. Jeśli odwołany pakiet aplikacji nie może zostać zainstalowany, na przykład dlatego, że pakiet został usunięty lub pobranie się nie powiodło, zadanie nie może zostać załatwione.
applicationPackageReferences?: BatchApplicationPackageReference[]
Wartość właściwości
commandLine
Linia poleceń zadania Menedżera Zadań. 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 Menedżera Zadań.
constraints?: BatchTaskConstraints
Wartość właściwości
containerSettings
Ustawienia kontenera, pod którym działa Task Manager Task Manager. Jeśli pula uruchamiająca to zadanie ma ustawioną containerConfiguration, to również musi być ustawiona. Jeśli pula, która wykona to zadanie, nie ma ustawionej containerConfiguration, nie może być ustawiona. 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
displayName
Nazwa wyświetlana zadania Menedżera Zadań. Nie musi być unikalny i może zawierać dowolne znaki Unicode do maksymalnej długości 1024.
displayName?: string
Wartość właściwości
string
environmentSettings
Lista ustawień zmiennych środowiskowych dla zadania Menedżera Zadań.
environmentSettings?: EnvironmentSetting[]
Wartość właściwości
id
Ciąg znaków, który jednoznacznie identyfikuje zadanie Menedżera Zadań w ramach 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.
id: string
Wartość właściwości
string
killJobOnCompletion
Czy ukończenie zadania Kierownika Zadań oznacza ukończenie całego Zadania. Jeśli to prawda, po zakończeniu zadania Menedżera Zadań usługa Batch oznacza zadanie jako ukończone. Jeśli w tym czasie nadal działają jakieś zadania (poza Job Release), są one zakończane. Jeśli nieprawda, zakończenie zadania Menedżera Zadań nie wpływa na status Zadania. W takim przypadku powinieneś użyć atrybutu onAllTasksComplete do zakończenia zadania lub poprosić klienta lub użytkownika, by zakończył zadanie wyraźnie. Przykładem jest sytuacja, gdy Menedżer Zadań tworzy zestaw Zadań, ale nie odgrywa dalszej roli w ich wykonaniu. Wartość domyślna to true. Jeśli używasz atrybutów onAllTasksComplete i onTaskFailure do kontrolowania czasu życia Zadania, a Menedżera Zadań używasz tylko do tworzenia Zadań dla zadania (nie do monitorowania postępów), to ważne jest, aby ustawić killJobOnCompletion na false.
killJobOnCompletion?: boolean
Wartość właściwości
boolean
outputFiles
Lista plików, które usługa wsadowa zagra z węzła obliczeniowego po uruchomieniu linii poleceń. W przypadku zadań wieloinstancjowych pliki będą przesyłane wyłącznie z węzła obliczeniowego, na którym wykonywane jest główne zadanie.
outputFiles?: OutputFile[]
Wartość właściwości
requiredSlots
Liczba slotów harmonogramowych wymaganych do wykonania zadania. Wartością domyślną jest 1. Zadanie może być zaplanowane do uruchomienia na węźle obliczeniowym tylko wtedy, gdy węzeł ma wystarczająco dużo wolnych slotów do planowania. Dla zadań wieloinstancjowych ta właściwość nie jest obsługiwana i nie może być określana.
requiredSlots?: 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. 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
runExclusive
Czy zadanie Job Manager wymaga wyłącznego użycia węzła obliczeniowego, w którym działa. Jeśli to prawda, żadne inne zadania nie będą działać na tym samym węźle tak długo, jak działa menedżer zadań. Jeśli to nieprawda, inne zadania mogą działać jednocześnie z Menedżerem zadań na węźle obliczeniowym. Zadanie Menedżera Zadań normalnie liczy się do limitu współbieżnych zadań węzła obliczeniowego, więc jest to istotne tylko wtedy, gdy węzeł obliczeniowy pozwala na wiele równoczesnych zadań. Wartość domyślna to true.
runExclusive?: boolean
Wartość właściwości
boolean
userIdentity
Tożsamość użytkownika, pod którą działa zadanie Menedżera Zadań. Jeśli zostanie pominięte, Zadanie działa jako użytkownik nieadministracyjny, unikalny dla Zadania.
userIdentity?: UserIdentity