Sdílet prostřednictvím


BatchStartTask interface

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ů. V některých případech se startTask může znovu spustit, i když se výpočetní uzel nerestartoval. Je potřeba věnovat zvláštní pozornost tomu, aby se zabránilo spuštění startTasks, které vytvářejí odrušovací proces nebo instalují nebo spouštějí služby z pracovního adresáře StartTask, protože to službě Batch znemožní opětovné spuštění StartTask.

Vlastnosti

commandLine

Příkazový řádek StartTask. 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).

containerSettings

Nastavení kontejneru, pod kterým běží StartTask. 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 StartTask

maxTaskRetryCount

Maximální počet opakování úkolu. Služba Batch opakuje úlohu, pokud je jeho ukončovací kód nenulový. Všimněte si, že tato hodnota konkrétně řídí počet opakování. Služba Batch zkusí úlohu jednou a může to zkusit znovu až do tohoto limitu. Pokud je například maximální počet opakování 3, služba Batch se pokusí úkol opakovat až 4krát (jeden počáteční pokus a 3 opakování). Pokud je maximální počet opakování 0, služba Batch nezopakuje úlohu. Pokud je maximální počet opakování -1, služba Batch opakuje úkol bez omezení, ale nedoporučuje se to pro spouštěcí úkol ani žádný úkol. Výchozí hodnota je 0 (žádné opakování).

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. 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. Soubory uvedené v tomto prvku jsou umístěny v pracovním adresáři úkolu.

userIdentity

Identita uživatele, pod kterou se spouští StartTask. Pokud tento parametr vynecháte, úloha se spustí jako uživatel, který není správcem, který je pro úlohu jedinečný.

waitForSuccess

Jestli má služba Batch čekat na úspěšné dokončení startTask (tj. ukončit s ukončovacím kódem 0) před naplánování všech úkolů na výpočetním uzlu. Pokud hodnota true a StartTask selže na uzlu, služba Batch opakuje hodnotu StartTask až do maximálního počtu opakování (maxTaskRetryCount). Pokud se úkol po všech opakováních úspěšně nedokončil, služba Batch označí nepoužitelný uzel a nenaplánuje do něj úkoly. Tuto podmínku lze zjistit prostřednictvím podrobností o stavu výpočetního uzlu a informacích o selhání. Pokud je false, služba Batch nebude čekat na dokončení startTask. V tomto případě se na výpočetním uzlu můžou spustit jiné úlohy, zatímco startTask je stále spuštěný; a i když startTask selže, budou nové úlohy i nadále naplánované na výpočetním uzlu. Výchozí hodnota je true.

Podrobnosti vlastnosti

commandLine

Příkazový řádek StartTask. 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

containerSettings

Nastavení kontejneru, pod kterým běží StartTask. 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 StartTask

environmentSettings?: EnvironmentSetting[]

Hodnota vlastnosti

maxTaskRetryCount

Maximální počet opakování úkolu. Služba Batch opakuje úlohu, pokud je jeho ukončovací kód nenulový. Všimněte si, že tato hodnota konkrétně řídí počet opakování. Služba Batch zkusí úlohu jednou a může to zkusit znovu až do tohoto limitu. Pokud je například maximální počet opakování 3, služba Batch se pokusí úkol opakovat až 4krát (jeden počáteční pokus a 3 opakování). Pokud je maximální počet opakování 0, služba Batch nezopakuje úlohu. Pokud je maximální počet opakování -1, služba Batch opakuje úkol bez omezení, ale nedoporučuje se to pro spouštěcí úkol ani žádný úkol. Výchozí hodnota je 0 (žádné opakování).

maxTaskRetryCount?: 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. 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. Soubory uvedené v tomto prvku jsou umístěny v pracovním adresáři úkolu.

resourceFiles?: ResourceFile[]

Hodnota vlastnosti

userIdentity

Identita uživatele, pod kterou se spouští StartTask. Pokud tento parametr vynecháte, úloha se spustí jako uživatel, který není správcem, který je pro úlohu jedinečný.

userIdentity?: UserIdentity

Hodnota vlastnosti

waitForSuccess

Jestli má služba Batch čekat na úspěšné dokončení startTask (tj. ukončit s ukončovacím kódem 0) před naplánování všech úkolů na výpočetním uzlu. Pokud hodnota true a StartTask selže na uzlu, služba Batch opakuje hodnotu StartTask až do maximálního počtu opakování (maxTaskRetryCount). Pokud se úkol po všech opakováních úspěšně nedokončil, služba Batch označí nepoužitelný uzel a nenaplánuje do něj úkoly. Tuto podmínku lze zjistit prostřednictvím podrobností o stavu výpočetního uzlu a informacích o selhání. Pokud je false, služba Batch nebude čekat na dokončení startTask. V tomto případě se na výpočetním uzlu můžou spustit jiné úlohy, zatímco startTask je stále spuštěný; a i když startTask selže, budou nové úlohy i nadále naplánované na výpočetním uzlu. Výchozí hodnota je true.

waitForSuccess?: boolean

Hodnota vlastnosti

boolean