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

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.

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.

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).

constraints

Omezení, která se vztahují na úkol správce úloh.

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.

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.

environmentSettings

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ů.

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.

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.

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.

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.

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.

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.

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

Hodnota vlastnosti