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
| command |
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). |
| container |
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. |
| environment |
Seznam nastavení proměnných prostředí pro StartTask |
| max |
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í). |
| 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. 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. |
| user |
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ý. |
| wait |
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