Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
K různým chybám může dojít při přidávání, plánování nebo spouštění úloh a úloh služby Azure Batch. Je jednoduché rozpoznat chyby, ke kterým dochází při přidávání úloh a úkolů. Rozhraní API, příkazový řádek nebo uživatelské rozhraní obvykle okamžitě ohlásí veškerá selhání. Tento článek popisuje, jak zkontrolovat a zpracovat chyby, ke kterým dochází po odeslání úloh a úkolů.
Selhání úloh
Úloha je skupina jednoho nebo více úkolů, které určují příkazové řádky, které se mají spustit. Při přidávání úlohy můžete zadat následující volitelné parametry. Tyto parametry ovlivňují, jak může úloha selhat.
Omezení úloh. Volitelně můžete vlastnost použít
maxWallClockTimek nastavení maximální doby, po kterou může být úloha aktivní nebo spuštěná. Pokud úloha překročímaxWallClockTime, ukončí se s vlastnostíterminateReasonnastavenou naMaxWallClockTimeExpiryve JobExecutionInformation.JobPreparationTask. Volitelně můžete zadat úlohu přípravy úlohy, která se má spustit na každém výpočetním uzlu naplánovaném pro spuštění úlohy. Uzel spustí přípravnou úlohu před prvním spuštěním úkolu pro danou úlohu. Pokud se při přípravě úlohy nezdaří, úkol se nespustí a práce se nedokončí.
JobReleaseTask. Volitelně můžete zadat úkol pro uvolnění úlohy pro ty úlohy, které mají úkol na přípravu. Při ukončení úlohy se uvolňovací úloha spustí na každém uzlu fondu, na kterém byl spuštěn úkol přípravy. Pokud uvolnění úlohy selže, přesto se úloha přesune do
completedstavu.
Na webu Azure Portal můžete tyto parametry nastavit ve Správci úloh, úlohách přípravy a vydání a rozšířených částech obrazovky Přidat úlohu batch.
Vlastnosti úlohy
Zkontrolujte následující vlastnosti úlohy v JobExecutionInformation na chyby.
Vlastnost
terminateReasonoznačujeMaxWallClockTimeExpiry, zda úloha překročilamaxWallClockTimezadané v omezeních úlohy a proto byla úloha ukončena. Tuto vlastnost lze také nastavit nataskFailed, pokud je atribut úlohyonTaskFailurenastaven naperformExitOptionsJobAction, a úkol selže, pokud je splněna ukončovací podmínka, která určujejobActionhodnotuterminatejob.Vlastnost JobSchedulingError je nastavena, pokud došlo k chybě plánování.
Úkoly přípravy úloh
Instance úlohy přípravy úlohy se spustí na každém výpočetním uzlu při prvním spuštění úlohy. Úkol přípravy úlohy si můžete představit jako šablonu úkolu s několika spuštěnými instancemi až po počet uzlů ve fondu. Zkontrolujte instance úkolů přípravy a zjistěte, jestli nedošlo k chybám.
Pomocí API Job - List Preparation and Release Task Status můžete zobrazit stav provedení všech instancí úkolů přípravy a uvolnění pro konkrétní úlohu. Stejně jako u jiných úkolů je JobPreparationTaskExecutionInformation k dispozici s vlastnostmi, jako failureInfo je, exitCode a result.
Při spuštění úkolu přípravy se úkol, který spustil tento přípravný úkol, přesune do stavu úkolupreparing. Pokud přípravná úloha selže, aktivační úloha se vrátí do active stavu a nespustí se.
Pokud úkol přípravy úlohy selže, aktivační úkol se nespustí. Úloha se nekompletuje a zůstane zaseknutá. Pokud neexistují žádné jiné úlohy s úkoly, které je možné naplánovat, fond se nemusí použít.
Úkoly uvolnění práce
Instance úlohy uvolnění úlohy se spustí, když je úloha ukončena na každém uzlu, na kterém byl spuštěn úkol přípravy úlohy. Zkontrolujte instance úlohy zveřejnění a zjistěte, jestli nedošlo k chybám.
Pomocí API Job - List Preparation and Release Task Status můžete zobrazit stav provedení všech instancí úkolů přípravy a uvolnění pro konkrétní úlohu. Stejně jako u jiných úkolů je JobReleaseTaskExecutionInformation k dispozici s vlastnostmi, jako failureInfo, exitCode a result.
Pokud jedna nebo více úloh uvolnění úkolu selže, úkol se stále ukončí a přesune se do completed stavu.
Selhání úloh
Úlohy můžou selhat z následujících důvodů:
- Příkazový řádek úkolu selže a vrátí se nenulovým ukončovacím kódem.
-
resourceFilesJeden nebo více specifikovaných pro úkol se nestáhne. - Jeden nebo více
outputFilesspecifikovaných pro úkol se nepodařilo nahrát. - Uplynulý čas úkolu překračuje
maxWallClockTimevlastnost zadanou v části Omezení úkolů.
Ve všech případech zkontrolujte následující vlastnosti na chyby a informace o chybách.
TaskExecutionInformation vlastnost má více vlastností, které poskytují informace o chybě. TaskExecutionResult označuje, jestli úloha z nějakého důvodu selhala, a
exitCodefailureInfoposkytne další informace o selhání.Úkol se vždy přesune do
completedstavu úkolu bez ohledu na to, jestli byl úspěšný nebo neúspěšný.
Zvažte dopad selhání úkolů na úlohu a na všechny závislosti úkolů. Můžete zadat ExitConditions pro konfiguraci akcí pro závislosti a pro úlohu.
- DependencyAction řídí, jestli se mají blokovat nebo spouštět úlohy, které závisí na neúspěšné úloze.
- JobAction určuje, jestli neúspěšný úkol způsobí zakázání, ukončení úlohy nebo beze změny.
Příkazové řádky úkolů
Příkazové řádky úloh se nespouštějí pod shellem na výpočetních uzlech, takže nemohou nativně využívat funkce shellu, jako je rozšíření proměnných prostředí. Pokud chcete tyto funkce využít, musíte vyvolat shell na příkazovém řádku. Další informace naleznete v tématu Rozšíření příkazového řádku proměnných prostředí.
Výstup příkazového řádku úkolu se zapíše do stderr.txt a stdout.txt souborů. Aplikace může také zapisovat do souborů protokolu specifických pro aplikaci. Nezapomeňte implementovat komplexní kontrolu chyb pro vaši aplikaci, abyste mohli rychle zjišťovat a diagnostikovat problémy.
Protokoly úloh
Pokud stále existuje uzel fondu, který spustil úkol, můžete získat a zobrazit soubory záznamů úkolu. Několik rozhraní API umožňuje výpis a získávání souborů úkolů, například Soubor – Získat z úkolu. Soubory protokolů pro úlohu nebo uzel můžete zobrazit také pomocí webu Azure Portal.
V horní části stránky Přehled uzlu vyberte Nahrát dávkové protokoly.
Na stránce Nahrát protokoly služby Batch vyberte Vybrat kontejner úložiště, vyberte kontejner služby Azure Storage, do které chcete nahrát, a pak vyberte Spustit nahrání.
Protokoly můžete zobrazit, otevřít nebo stáhnout ze stránky úložného kontejneru.
Výstupní soubory
Vzhledem k tomu, že fondy služby Batch a uzly fondu jsou často dočasné, protože uzly se průběžně přidávají a odstraňují, je nejlepší uložit logovací soubory během provádění úlohy. Výstupní soubory úloh představují pohodlný způsob ukládání souborů protokolu do Azure Storage. Další informace najdete v tématu Uložení dat úloh do služby Azure Storage pomocí rozhraní API služby Batch.
Při každém nahrání souboru služba Batch zapíše dva soubory protokolu do výpočetního uzlu, fileuploadout.txt a fileuploaderr.txt. V těchto souborech protokolu můžete prozkoumat další informace o konkrétním selhání. Pokud se o nahrání souboru nepokusilo, například protože samotný úkol se nepovedlo spustit, tyto soubory protokolu neexistují.
Další kroky
- Přečtěte si další informace o úlohách a úkolech služby Batch apřípravě a vydávání úloh.
- Přečtěte si informace o chybách fondu a uzlů služby Batch.