BatchJobManagerTask interface
Určuje podrobnosti úlohy správce úloh. Úloha Správce úloh se automaticky spustí při vytvoření úlohy. Služba Batch se pokusí naplánovat úlohu Správce úloh před všemi ostatními úkoly v úloze. Při zmenšování fondu se služba Batch pokusí zachovat uzly, ve kterých běží úkoly Správce úloh co nejdéle (to znamená, že výpočetní uzly se spuštěnými "normální" úkoly se odeberou před výpočetními uzly, na kterých běží úkoly Správce úloh). Pokud úloha Správce úloh selže a je třeba ji restartovat, systém se pokusí naplánovat ji s nejvyšší prioritou. Pokud nejsou dostupné žádné nečinné výpočetní uzly, může systém ukončit některý ze spuštěných úkolů ve fondu a vrátit ho do fronty, aby se uvolnilo místo pro restartování úlohy Správce úloh. Všimněte si, že úkol Správce úloh v jedné úloze nemá prioritu oproti úkolům v jiných úlohách. V rámci úloh se pozorují pouze priority na úrovni úlohy. Například pokud je třeba restartovat správce úloh v prioritě 0 Úloha, nepřesune úkoly priority 1 Úloha. Služba Batch bude opakovat úlohy, když se na uzlu aktivuje operace obnovení. Příklady operací obnovení zahrnují (ale nejsou omezené) při restartování uzlu, který není v pořádku, nebo výpočetní uzel zmizel kvůli selhání hostitele. Opakované pokusy z důvodu operací obnovení jsou nezávislé na hodnotě maxTaskRetryCount a nezapočítávají se do hodnoty maxTaskRetryCount. I když je hodnota maxTaskRetryCount 0, může dojít k internímu opakování kvůli operaci obnovení. Z tohoto důvodu by všechny úkoly měly být idempotentní. To znamená, že úkoly musí tolerovat přerušení a restartování, aniž by to způsobilo poškození nebo duplicitní data. Osvědčeným postupem pro dlouhotrvající úlohy je použití určité formy vytváření kontrolních bodů.
Vlastnosti
| allow |
Zda může úloha správce úloh běžet na spot/nízkoprioritním výpočetním uzlu. Výchozí hodnota je true. |
| application |
Seznam aplikačních balíčků, které dávková služba nasadí na Compute Node před spuštěním příkazového řádku. Aplikační balíčky jsou stahovány a nasazovány do sdíleného adresáře, nikoli do pracovního adresáře Task. Pokud je tedy odkazovaný aplikační balíček již na Compute Node a je aktuální, není znovu stahovatelný; používá se existující kopie na Compute Node. Pokud nelze nainstalovat odkazovaný aplikační balíček, například proto, že balíček byl smazán nebo nedošlo ke stažení, úkol selže. |
| command |
Příkazový řádek úkolu Správce úloh. Příkazový řádek se nespustí pod prostředím, a proto nemůže využívat funkce prostředí, jako je rozšíření proměnné prostředí. Pokud chcete využít takové funkce, měli byste shell spustit v příkazové řádku, například pomocí "cmd /c MyCommand" v Windows nebo "/bin/sh -c MyCommand" v Linuxu. Pokud příkazový řádek odkazuje na cesty k souborům, měl by použít relativní cestu (relativní k pracovnímu adresáři úkolu) nebo použít proměnnou prostředí poskytovanou službou Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| constraints | Omezení, která se vztahují na úkol správce úloh. |
| container |
Nastavení kontejneru, pod kterým Job Manager Task běží. Pokud má pool, který bude tuto úlohu spouštět, nastaven containerConfiguration, musí být nastaven také. Pokud pool, který bude tuto úlohu spouštět, nemá nastavenou containerConfiguration, nesmí být nastavena. Když je toto specifikováno, všechny adresáře rekurzivně pod AZ_BATCH_NODE_ROOT_DIR (kořen Azure Batch adresářů na uzlu) jsou namapovány do kontejneru, všechny proměnné prostředí úkolu jsou namapovány do kontejneru a příkazový řádek úkolu se vykoná v kontejneru. Soubory vytvořené v kontejneru mimo AZ_BATCH_NODE_ROOT_DIR nemusí být zobrazeny na hostitelském disku, což znamená, že dávková API souborů k těmto souborům nebudou mít přístup. |
| display |
Zobrazovací název úkolu Správce práce. Nemusí být jedinečný a může obsahovat jakékoli Unicode znaky až do maximální délky 1024. |
| environment |
Seznam nastavení proměnných prostředí pro úkol Správce úloh. |
| id | Řetězec, který jednoznačně identifikuje úkol správce práce v rámci práce. ID může obsahovat libovolnou kombinaci alfanumerických znaků včetně pomlček a podtržítek a nesmí obsahovat více než 64 znaků. |
| kill |
Zda dokončení úkolu správce práce znamená dokončení celé práce. Pokud je to pravda, po dokončení úlohy správce úloh služba Batch označí úlohu jako dokončenou. Pokud v tuto chvíli stále běží nějaké Tasks (kromě Job Release), tyto Tasks jsou ukončeny. Pokud je to nepravda, dokončení úkolu Správce práce neovlivňuje stav Práce. V takovém případě byste měli buď použít atribut onAllTasksComplete k ukončení práce, nebo nechat klienta či uživatele explicitně ukončit práci. Příkladem je, když správce úloh vytvoří sadu úkolů, ale pak už nehraje žádnou další roli v jejich vykonání. Výchozí hodnota je true. Pokud používáte atributy onAllTasksComplete a onTaskFailure pro kontrolu životnosti práce a Job Manager Task pouze k vytvoření úkolů pro danou práci (ne ke sledování pokroku), je důležité nastavit killJobOnCompletion na false. |
| output |
Seznam souborů, které služba Batch nahraje z Compute Node po spuštění příkazového řádku. U víceinstancových úloh budou soubory nahrávány pouze z Compute Node, na kterém se vykonává primární Task. |
| required |
Počet plánovacích slotů, které úkol vyžaduje k vykonání. Výchozí hodnota je 1. Úkol lze naplánovat k spuštění na výpočetním uzlu pouze tehdy, pokud má uzel dostatek volných slotů pro plánování. Pro víceinsekční úkoly tato vlastnost není podporována a nesmí být specifikována. |
| resource |
Seznam souborů, které služba Batch stáhne do výpočetního uzlu před spuštěním příkazového řádku. Soubory uvedené v tomto prvku jsou umístěny v pracovním adresáři úkolu. Seznam souborů prostředků má maximální velikost. Při překročení maximální velikosti požadavek selže a kód chyby odpovědi bude RequestEntityTooLarge. Pokud k tomu dojde, musí být kolekce ResourceFiles zmenšena velikostí. Toho lze dosáhnout pomocí .zip souborů, balíčků aplikací nebo kontejnerů Dockeru. |
| run |
Zda úkol správce úloh vyžaduje výhradní použití výpočetního uzlu, kde běží. Pokud je to pravda, žádné jiné úkoly neběží na stejném uzlu tak dlouho, dokud správce úloh běží. Pokud je to nepravda, mohou ostatní úlohy běžet současně se správcem úloh na výpočetním uzlu. Úloha správce úloh se obvykle počítá do limitu souběžných úloh Výpočetního uzlu, takže to je relevantní pouze tehdy, pokud Výpočetní uzel umožňuje více současných úloh. Výchozí hodnota je true. |
| user |
Identita uživatele, pod kterou se vykonává úloha správce úloh. Pokud je vynechán, Úkol běží jako neadministrátorský uživatel unikátní pro daný úkol. |
Podrobnosti vlastnosti
allowLowPriorityNode
Zda může úloha správce úloh běžet na spot/nízkoprioritním výpočetním uzlu. Výchozí hodnota je true.
allowLowPriorityNode?: boolean
Hodnota vlastnosti
boolean
applicationPackageReferences
Seznam aplikačních balíčků, které dávková služba nasadí na Compute Node před spuštěním příkazového řádku. Aplikační balíčky jsou stahovány a nasazovány do sdíleného adresáře, nikoli do pracovního adresáře Task. Pokud je tedy odkazovaný aplikační balíček již na Compute Node a je aktuální, není znovu stahovatelný; používá se existující kopie na Compute Node. Pokud nelze nainstalovat odkazovaný aplikační balíček, například proto, že balíček byl smazán nebo nedošlo ke stažení, úkol selže.
applicationPackageReferences?: BatchApplicationPackageReference[]
Hodnota vlastnosti
commandLine
Příkazový řádek úkolu Správce úloh. Příkazový řádek se nespustí pod prostředím, a proto nemůže využívat funkce prostředí, jako je rozšíření proměnné prostředí. Pokud chcete využít takové funkce, měli byste shell spustit v příkazové řádku, například pomocí "cmd /c MyCommand" v Windows nebo "/bin/sh -c MyCommand" v Linuxu. Pokud příkazový řádek odkazuje na cesty k souborům, měl by použít relativní cestu (relativní k pracovnímu adresáři úkolu) nebo použít proměnnou prostředí poskytovanou službou Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Hodnota vlastnosti
string
constraints
Omezení, která se vztahují na úkol správce úloh.
constraints?: BatchTaskConstraints
Hodnota vlastnosti
containerSettings
Nastavení kontejneru, pod kterým Job Manager Task běží. Pokud má pool, který bude tuto úlohu spouštět, nastaven containerConfiguration, musí být nastaven také. Pokud pool, který bude tuto úlohu spouštět, nemá nastavenou containerConfiguration, nesmí být nastavena. Když je toto specifikováno, všechny adresáře rekurzivně pod AZ_BATCH_NODE_ROOT_DIR (kořen Azure Batch adresářů na uzlu) jsou namapovány do kontejneru, všechny proměnné prostředí úkolu jsou namapovány do kontejneru a příkazový řádek úkolu se vykoná v kontejneru. Soubory vytvořené v kontejneru mimo AZ_BATCH_NODE_ROOT_DIR nemusí být zobrazeny na hostitelském disku, což znamená, že dávková API souborů k těmto souborům nebudou mít přístup.
containerSettings?: BatchTaskContainerSettings
Hodnota vlastnosti
displayName
Zobrazovací název úkolu Správce práce. Nemusí být jedinečný a může obsahovat jakékoli Unicode znaky až do maximální délky 1024.
displayName?: string
Hodnota vlastnosti
string
environmentSettings
Seznam nastavení proměnných prostředí pro úkol Správce úloh.
environmentSettings?: EnvironmentSetting[]
Hodnota vlastnosti
id
Řetězec, který jednoznačně identifikuje úkol správce práce v rámci práce. ID může obsahovat libovolnou kombinaci alfanumerických znaků včetně pomlček a podtržítek a nesmí obsahovat více než 64 znaků.
id: string
Hodnota vlastnosti
string
killJobOnCompletion
Zda dokončení úkolu správce práce znamená dokončení celé práce. Pokud je to pravda, po dokončení úlohy správce úloh služba Batch označí úlohu jako dokončenou. Pokud v tuto chvíli stále běží nějaké Tasks (kromě Job Release), tyto Tasks jsou ukončeny. Pokud je to nepravda, dokončení úkolu Správce práce neovlivňuje stav Práce. V takovém případě byste měli buď použít atribut onAllTasksComplete k ukončení práce, nebo nechat klienta či uživatele explicitně ukončit práci. Příkladem je, když správce úloh vytvoří sadu úkolů, ale pak už nehraje žádnou další roli v jejich vykonání. Výchozí hodnota je true. Pokud používáte atributy onAllTasksComplete a onTaskFailure pro kontrolu životnosti práce a Job Manager Task pouze k vytvoření úkolů pro danou práci (ne ke sledování pokroku), je důležité nastavit killJobOnCompletion na false.
killJobOnCompletion?: boolean
Hodnota vlastnosti
boolean
outputFiles
Seznam souborů, které služba Batch nahraje z Compute Node po spuštění příkazového řádku. U víceinstancových úloh budou soubory nahrávány pouze z Compute Node, na kterém se vykonává primární Task.
outputFiles?: OutputFile[]
Hodnota vlastnosti
requiredSlots
Počet plánovacích slotů, které úkol vyžaduje k vykonání. Výchozí hodnota je 1. Úkol lze naplánovat k spuštění na výpočetním uzlu pouze tehdy, pokud má uzel dostatek volných slotů pro plánování. Pro víceinsekční úkoly tato vlastnost není podporována a nesmí být specifikována.
requiredSlots?: number
Hodnota vlastnosti
number
resourceFiles
Seznam souborů, které služba Batch stáhne do výpočetního uzlu před spuštěním příkazového řádku. Soubory uvedené v tomto prvku jsou umístěny v pracovním adresáři úkolu. Seznam souborů prostředků má maximální velikost. Při překročení maximální velikosti požadavek selže a kód chyby odpovědi bude RequestEntityTooLarge. Pokud k tomu dojde, musí být kolekce ResourceFiles zmenšena velikostí. Toho lze dosáhnout pomocí .zip souborů, balíčků aplikací nebo kontejnerů Dockeru.
resourceFiles?: ResourceFile[]
Hodnota vlastnosti
runExclusive
Zda úkol správce úloh vyžaduje výhradní použití výpočetního uzlu, kde běží. Pokud je to pravda, žádné jiné úkoly neběží na stejném uzlu tak dlouho, dokud správce úloh běží. Pokud je to nepravda, mohou ostatní úlohy běžet současně se správcem úloh na výpočetním uzlu. Úloha správce úloh se obvykle počítá do limitu souběžných úloh Výpočetního uzlu, takže to je relevantní pouze tehdy, pokud Výpočetní uzel umožňuje více současných úloh. Výchozí hodnota je true.
runExclusive?: boolean
Hodnota vlastnosti
boolean
userIdentity
Identita uživatele, pod kterou se vykonává úloha správce úloh. Pokud je vynechán, Úkol běží jako neadministrátorský uživatel unikátní pro daný úkol.
userIdentity?: UserIdentity