Megosztás a következőn keresztül:


Azure Batch-feladat- és feladathibák

Az Azure Batch-feladatok és feladatok hozzáadása, ütemezése vagy futtatása során különböző hibák fordulhatnak elő. Egyszerűen észlelheti a feladatok és tevékenységek hozzáadásakor előforduló hibákat. Az API, a parancssor vagy a felhasználói felület általában azonnal visszaadja a hibákat. Ez a cikk bemutatja, hogyan ellenőrizheti és kezelheti a feladatok és tevékenységek elküldése után előforduló hibákat.

Sikertelen feladatok

A feladat egy vagy több feladatból álló csoport, amely a futtatandó parancssorokat adja meg. Feladat hozzáadásakor a következő választható paramétereket adhatja meg. Ezek a paraméterek befolyásolják, hogy a feladat hogyan hiúsulhat meg.

  • JobConstraints. A tulajdonság használatával maxWallClockTime megadhatja, hogy egy feladat mennyi ideig lehet aktív vagy fut. Ha a feladat meghaladja a maxWallClockTimeértéket, a feladat a JobExecutionInformation tulajdonsággal MaxWallClockTimeExpiry fejeződik beterminateReason.

  • JobPreparationTask. Igény szerint megadhat egy feladat-előkészítési feladatot, amelyet minden olyan számítási csomóponton futtatni szeretne, amely feladatfeladat futtatására van ütemezve. A csomópont a feladat-előkészítési feladatot az első alkalommal futtatja a feladathoz. Ha a feladat-előkészítési feladat meghiúsul, a tevékenység nem fut, és a feladat nem fejeződik be.

  • JobReleaseTask. Igény szerint megadhatja a feladat-kiadási feladatot a feladat-előkészítési feladatokat tartalmazó feladatokhoz. Egy feladat leállásakor a feladat-kiadási tevékenység minden olyan készletcsomóponton fut, amely feladat-előkészítési feladatot futtatott. Ha egy feladatkiadási feladat meghiúsul, a feladat továbbra is állapotba completed kerül.

Az Azure Portalon ezeket a paramétereket a Feladatkezelőben, az előkészítési és kiadási feladatokban, valamint a Batch Add feladat képernyő Speciális szakaszaiban állíthatja be.

Feladat tulajdonságai

Hibákért tekintse meg a JobExecutionInformation alábbi feladattulajdonságait:

  • A terminateReason tulajdonság azt jelzi MaxWallClockTimeExpiry , hogy a feladat túllépte-e a maxWallClockTime feladatkorlátozásokban megadott értéket, ezért a feladat leállt. Ezt a tulajdonságot akkor is beállíthatja, taskFailed ha a feladat attribútuma onTaskFailure a következőre performExitOptionsJobActionvan állítva, és a feladat egy olyan kilépési feltétellel meghiúsul, amely a következőt jobAction terminatejobhatározza meg.

  • A JobSchedulingError tulajdonság akkor van beállítva, ha ütemezési hiba történt.

Feladat-előkészítési feladatok

A feladat-előkészítési feladat egy példánya minden számítási csomóponton fut, amikor a csomópont először futtat egy feladatot a feladathoz. A feladat-előkészítési feladat feladatsablonként is felfogható, több példány futtatásával, akár a készlet csomópontjainak számával. Ellenőrizze a feladat-előkészítési feladatpéldányokat annak megállapításához, hogy voltak-e hibák.

A Feladat – Előkészítési és kiadási feladat állapota API-val listázhatja egy adott feladat összes feladat-előkészítési és kiadási tevékenységének végrehajtási állapotát. Más feladatokhoz hasonlóan a JobPreparationTaskExecutionInformation is elérhető olyan tulajdonságokkal, mint failureInfoaz , exitCodeés result.

Feladat-előkészítési tevékenység futtatásakor a feladat-előkészítési tevékenységet kiváltó tevékenység a következő tevékenységállapotba preparingkerül: . Ha a feladat-előkészítési feladat meghiúsul, az eseményindító tevékenység visszaáll az active állapotra, és nem fut.

Ha egy feladat-előkészítési feladat meghiúsul, az eseményindító feladat nem fut. A feladat nem fejeződött be, és elakadt. Ha nincsenek más ütemezhető feladatokkal rendelkező feladatok, előfordulhat, hogy a készlet nem lesz használva.

Feladatkiadási feladatok

A feladat kiadási tevékenységének egy példánya akkor fut, amikor a feladat le van állítva minden olyan csomóponton, amely feladat-előkészítési feladatot futtatott. Ellenőrizze a feladat kiadási feladatpéldányait annak megállapításához, hogy voltak-e hibák.

A Feladat – Előkészítési és kiadási feladat állapota API-val listázhatja egy adott feladat összes feladat-előkészítési és kiadási tevékenységének végrehajtási állapotát. A Többi tevékenységhez hasonlóan a JobReleaseTaskExecutionInformation is elérhető olyan tulajdonságokkal, mint failureInfoaz , exitCodeés result.

Ha egy vagy több feladatkiadási feladat meghiúsul, a feladat továbbra is leáll, és egy állapotba completed kerül.

Feladathibák

A feladatfeladatok a következő okokból meghiúsulhatnak:

  • A feladat parancssora meghiúsul, és egy nemzero kilépési kóddal tér vissza.
  • A feladathoz megadott egy vagy több resourceFiles nem tölthető le.
  • A tevékenységhez megadott egy vagy több outputFiles nem tölthető fel.
  • A tevékenység eltelt ideje meghaladja a maxWallClockTime TaskConstraintsben megadott tulajdonságot.

Minden esetben ellenőrizze a következő tulajdonságokat a hibákra és a hibákra vonatkozó információkért:

  • A TaskExecutionInformation tulajdonság több tulajdonsággal rendelkezik, amelyek információt nyújtanak egy hibáról. A taskExecutionResult jelzi, hogy a tevékenység valamilyen okból meghiúsult-e, és failureInfo exitCode további információt nyújt a hibáról.

  • A tevékenység mindig a completed TaskState-be kerül, függetlenül attól, hogy sikeres volt-e vagy sikertelen volt.

Fontolja meg a feladathibáknak a feladatra és a tevékenységfüggőségekre gyakorolt hatását. Az ExitCondition-eket megadhatja a függőségek és a feladat műveleteinek konfigurálásához.

  • A DependencyAction szabályozza, hogy a sikertelen tevékenységtől függő tevékenységeket tiltsa-e le vagy futtassa.
  • A JobAction azt szabályozza, hogy a sikertelen tevékenység miatt a feladat le van-e tiltva, megszakítva vagy változatlanul.

Tevékenység parancssorai

A feladat parancssorai nem futnak rendszerhéj alatt a számítási csomópontokon, így natív módon nem használhatják a rendszerhéjfunkciókat, például a környezeti változók bővítését. Az ilyen funkciók kihasználásához meg kell hívnia a rendszerhéjat a parancssorban. További információ: A környezeti változók parancssori bővítése.

A feladat parancssori kimenete stderr.txt és stdout.txt fájlokba ír. Előfordulhat, hogy az alkalmazás alkalmazásspecifikus naplófájlokra is ír. Győződjön meg arról, hogy átfogó hibaellenőrzést hajt végre az alkalmazás számára, hogy azonnal észlelje és diagnosztizálja a problémákat.

Tevékenységnaplók

Ha a tevékenységet futtató készletcsomópont továbbra is létezik, lekérheti és megtekintheti a tevékenység naplófájljait. Számos API lehetővé teszi a feladatfájlok felsorolását és lekérését, például a Fájl – Get From Task parancsot. Egy feladat vagy csomópont naplófájljait az Azure Portalon is listázhatja és megtekintheti.

  1. A csomópont Áttekintés lapjának tetején válassza a Kötegnaplók feltöltése lehetőséget.

    Képernyőkép egy csomópont áttekintési oldaláról, amelyen a Batch-naplók feltöltése ki van emelve.

  2. A Batch-naplók feltöltése lapon válassza a Tároló kiválasztása lehetőséget, válassza ki a feltöltendő Azure Storage-tárolót, majd válassza a Feltöltés indítása lehetőséget.

    Képernyőkép a Kötegnaplók feltöltése lapról.

  3. A naplókat megtekintheti, megnyithatja vagy letöltheti a tárolóoldalról.

    Képernyőkép egy tároló tevékenységnaplóiról.

Kimeneti fájlok

Mivel a Batch-készletek és a készletcsomópontok gyakran elenyészőek, és a csomópontok folyamatosan vannak hozzáadva és törölve, a legjobb, ha a feladat futtatásakor menti a naplófájlokat. A feladatkimeneti fájlok kényelmesen menthetők naplófájlokat az Azure Storage-ba. További információ: Feladatadatok megőrzése az Azure Storage-ban a Batch szolgáltatás API-val.

Minden fájlfeltöltéskor a Batch két naplófájlt ír a számítási csomópontra, fileuploadout.txt és fileuploaderr.txt. Ezeket a naplófájlokat megvizsgálva többet is megtudhat egy adott hibáról. Ha a fájlfeltöltést nem kísérelték meg, például azért, mert maga a feladat nem futtatható, ezek a naplófájlok nem léteznek.

Következő lépések