Sdílet prostřednictvím


BatchJobPreparationTask interface

Úkol přípravy úlohy, který se má spustit před všemi úkoly úlohy v libovolném výpočetním uzlu. Přípravu úlohy můžete použít k přípravě uzlu na spouštění úkolů pro úlohu. Mezi aktivity běžně prováděné při přípravě úlohy patří: Stahování běžných souborů prostředků používaných všemi úkoly v úloze. Úkol přípravy úlohy může stáhnout tyto běžné soubory prostředků do sdíleného umístění v uzlu. (AZ_BATCH_NODE_ROOT_DIR\shared) nebo spuštění místní služby na uzlu, aby s ní mohly komunikovat všechny úlohy. Pokud úloha přípravy úlohy selže (tj. vyčerpá její počet opakování před ukončením s ukončovacím kódem 0), služba Batch nespustí úkoly této úlohy na uzlu. Výpočetní uzel zůstává způsobilý ke spouštění úkolů této úlohy, dokud nebude znovu zmagován. Výpočetní uzel zůstane aktivní a dá se použít pro jiné úlohy. Úkol přípravy úlohy může běžet vícekrát na stejném uzlu. Proto byste měli napsat úlohu přípravy úlohy pro zpracování opětovného spuštění. Pokud se uzel restartuje, úloha přípravy úlohy se před plánováním jakékoli jiné úlohy úlohy spustí znovu na výpočetním uzlu, pokud je true znovu spustitOnNodeRebootAfterSuccess nebo pokud úloha přípravy úlohy nebyla dokončena dříve. Pokud je uzel znovu zmagován, úloha přípravy úlohy se spustí znovu před naplánování libovolného úkolu úlohy. 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

commandLine

Příkazový řádek úkolu přípravy úlohy. 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 tyto funkce využít, měli byste vyvolat prostředí na příkazovém řádku, například pomocí příkazu cmd /c MyCommand ve 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á platí pro úkol přípravy úlohy.

containerSettings

Nastavení kontejneru, pod kterým se spouští úloha přípravy úlohy. Po zadání se všechny adresáře rekurzivně pod AZ_BATCH_NODE_ROOT_DIR (kořen adresářů Azure Batch na uzlu) mapují do kontejneru, všechny proměnné prostředí úloh se mapují do kontejneru a v kontejneru se spustí příkazový řádek úkolu. Soubory vytvořené v kontejneru mimo AZ_BATCH_NODE_ROOT_DIR se nemusí projevit na hostitelském disku, což znamená, že rozhraní API souborů batch nebudou mít přístup k těmto souborům.

environmentSettings

Seznam nastavení proměnných prostředí pro úkol přípravy úlohy.

id

Řetězec, který jednoznačně identifikuje úkol přípravy úlohy v rámci úlohy. ID může obsahovat libovolnou kombinaci alfanumerických znaků včetně pomlček a podtržítka a nesmí obsahovat více než 64 znaků. Pokud tuto vlastnost nezadáte, služba Batch přiřadí výchozí hodnotu jobpreparation. Žádný jiný úkol v úloze nemůže mít stejné ID jako úkol přípravy úlohy. Pokud se pokusíte odeslat úkol se stejným ID, služba Batch odmítne požadavek s kódem chyby TaskIdSameAsJobPreparationTask; Pokud rozhraní REST API voláte přímo, stavový kód HTTP je 409 (konflikt).

rerunOnNodeRebootAfterSuccess

Jestli má služba Batch po restartování výpočetního uzlu znovu spustit úlohu přípravy úlohy. Úkol přípravy úlohy se vždy znovu spustí, pokud je výpočetní uzel zmagí nebo pokud se úkol přípravy úlohy nedokončil (např. restartování proběhlo při spuštění úkolu). Proto byste měli vždy napsat úlohu přípravy úlohy, která má být idempotentní a správně se chovat, pokud se spustí vícekrát. Výchozí hodnota je true.

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.

userIdentity

Identita uživatele, pod kterou se spouští úloha přípravy úlohy. Pokud tento parametr vynecháte, úloha se spustí jako uživatel bez oprávnění správce, který je jedinečný pro úlohu na výpočetních uzlech Windows, nebo jako uživatel, který není správcem, který je pro fond na výpočetních uzlech Linuxu jedinečný.

waitForSuccess

Jestli má služba Batch čekat na úspěšné dokončení úlohy přípravy úlohy před naplánování všech ostatních úkolů úlohy na výpočetním uzlu. Úloha přípravy úlohy se úspěšně dokončila, pokud se ukončí s ukončovacím kódem 0. Pokud je hodnota true a úloha přípravy úlohy na uzlu selže, služba Batch opakuje úkol přípravy úlohy až do maximálního počtu opakování (jak je uvedeno v elementu omezení). Pokud úloha po všech opakováních ještě nebyla úspěšně dokončena, služba Batch neplánuje úkoly úlohy do uzlu. Uzel zůstává aktivní a má nárok na spouštění úkolů jiných úloh. Pokud je hodnota false, služba Batch nečeká na dokončení úlohy přípravy úlohy. V tomto případě mohou ostatní úkoly úlohy začít spouštět na výpočetním uzlu, zatímco úloha přípravy úlohy je stále spuštěna; a i když úloha přípravy úlohy selže, budou nové úkoly i nadále naplánované na výpočetním uzlu. Výchozí hodnota je true.

Podrobnosti vlastnosti

commandLine

Příkazový řádek úkolu přípravy úlohy. 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 tyto funkce využít, měli byste vyvolat prostředí na příkazovém řádku, například pomocí příkazu cmd /c MyCommand ve 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á platí pro úkol přípravy úlohy.

constraints?: BatchTaskConstraints

Hodnota vlastnosti

containerSettings

Nastavení kontejneru, pod kterým se spouští úloha přípravy úlohy. Po zadání se všechny adresáře rekurzivně pod AZ_BATCH_NODE_ROOT_DIR (kořen adresářů Azure Batch na uzlu) mapují do kontejneru, všechny proměnné prostředí úloh se mapují do kontejneru a v kontejneru se spustí příkazový řádek úkolu. Soubory vytvořené v kontejneru mimo AZ_BATCH_NODE_ROOT_DIR se nemusí projevit na hostitelském disku, což znamená, že rozhraní API souborů batch nebudou mít přístup k těmto souborům.

containerSettings?: BatchTaskContainerSettings

Hodnota vlastnosti

environmentSettings

Seznam nastavení proměnných prostředí pro úkol přípravy úlohy.

environmentSettings?: EnvironmentSetting[]

Hodnota vlastnosti

id

Řetězec, který jednoznačně identifikuje úkol přípravy úlohy v rámci úlohy. ID může obsahovat libovolnou kombinaci alfanumerických znaků včetně pomlček a podtržítka a nesmí obsahovat více než 64 znaků. Pokud tuto vlastnost nezadáte, služba Batch přiřadí výchozí hodnotu jobpreparation. Žádný jiný úkol v úloze nemůže mít stejné ID jako úkol přípravy úlohy. Pokud se pokusíte odeslat úkol se stejným ID, služba Batch odmítne požadavek s kódem chyby TaskIdSameAsJobPreparationTask; Pokud rozhraní REST API voláte přímo, stavový kód HTTP je 409 (konflikt).

id?: string

Hodnota vlastnosti

string

rerunOnNodeRebootAfterSuccess

Jestli má služba Batch po restartování výpočetního uzlu znovu spustit úlohu přípravy úlohy. Úkol přípravy úlohy se vždy znovu spustí, pokud je výpočetní uzel zmagí nebo pokud se úkol přípravy úlohy nedokončil (např. restartování proběhlo při spuštění úkolu). Proto byste měli vždy napsat úlohu přípravy úlohy, která má být idempotentní a správně se chovat, pokud se spustí vícekrát. Výchozí hodnota je true.

rerunOnNodeRebootAfterSuccess?: boolean

Hodnota vlastnosti

boolean

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

userIdentity

Identita uživatele, pod kterou se spouští úloha přípravy úlohy. Pokud tento parametr vynecháte, úloha se spustí jako uživatel bez oprávnění správce, který je jedinečný pro úlohu na výpočetních uzlech Windows, nebo jako uživatel, který není správcem, který je pro fond na výpočetních uzlech Linuxu jedinečný.

userIdentity?: UserIdentity

Hodnota vlastnosti

waitForSuccess

Jestli má služba Batch čekat na úspěšné dokončení úlohy přípravy úlohy před naplánování všech ostatních úkolů úlohy na výpočetním uzlu. Úloha přípravy úlohy se úspěšně dokončila, pokud se ukončí s ukončovacím kódem 0. Pokud je hodnota true a úloha přípravy úlohy na uzlu selže, služba Batch opakuje úkol přípravy úlohy až do maximálního počtu opakování (jak je uvedeno v elementu omezení). Pokud úloha po všech opakováních ještě nebyla úspěšně dokončena, služba Batch neplánuje úkoly úlohy do uzlu. Uzel zůstává aktivní a má nárok na spouštění úkolů jiných úloh. Pokud je hodnota false, služba Batch nečeká na dokončení úlohy přípravy úlohy. V tomto případě mohou ostatní úkoly úlohy začít spouštět na výpočetním uzlu, zatímco úloha přípravy úlohy je stále spuštěna; a i když úloha přípravy úlohy selže, budou nové úkoly i nadále naplánované na výpočetním uzlu. Výchozí hodnota je true.

waitForSuccess?: boolean

Hodnota vlastnosti

boolean