Feladatok és tevékenységek az Azure Batchben
A Azure Batch a tevékenységek a számítási egységeket jelölik. A feladatok ezeknek a feladatoknak a gyűjteményei. A feladatokról és feladatokról, valamint azok Azure Batch munkafolyamatokban való használatáról az alábbiakban olvashat bővebben.
Feladatok
A feladatok tevékenységek gyűjteményei. A feladatok határozzák meg, hogyan végezzék el a hozzájuk tartozó tevékenységek a számítási feladatokat a készlet számítási csomópontjaiban.
A feladat azt a készletet adja meg, amelyben a munkát futtatni szeretné. Az egyes feladatokhoz saját készletet hozhat létre, de egyetlen készletet is használhat több feladathoz. Minden feladathoz létrehozhat készletet, amely egy feladatütemezéshez van társítva, vagy egy készletet a feladatütemezéshez társított összes feladathoz.
A feladatok prioritása
Opcionális feladatprioritást rendelhet a létrehozott feladatokhoz. A Batch szolgáltatás a feladat prioritási értékével határozza meg az ütemezés sorrendjét (a feladaton belüli összes tevékenységhez) az egyes készletekben.
A feladatok prioritásának frissítéséhez hívja meg a Feladatművelet tulajdonságainak frissítése (Batch REST) vagy a CloudJob.Priority (Batch .NET) módosítását. A prioritási értékek -1000 (legalacsonyabb prioritás) és +1000 (legmagasabb prioritás) között mozognak.
Ugyanazon a készleten belül a magasabb prioritású feladatok ütemezési elsőbbséget élveznek az alacsonyabb prioritású feladatokkal szemben. Az alacsonyabb prioritású feladatokban már futó feladatokat nem előzik meg a magasabb prioritású feladatok tevékenységei. Az azonos prioritási szinttel rendelkező feladatoknak egyenlő esélyük van az ütemezésre, és a feladat végrehajtásának sorrendje nincs meghatározva.
Az egyik készletben futó magas prioritású feladat nem befolyásolja a különálló készletben vagy egy másik Batch-fiókban futó feladatok ütemezését. A feladat prioritása nem vonatkozik az automatikus készletekre, amelyek a feladat elküldésekor jönnek létre.
Feladatmegkötések
A feladatok korlátozásai segítségével korlátokat szabhat a feladatokhoz:
- Beállíthatja a maximális valós időt, ami azt jelenti, hogy ha egy feladat az itt megadott időtartamnál hosszabban fut, a rendszer leállítja a feladatot és a hozzá tartozó összes tevékenységet.
- Megadhatja a tevékenység újrapróbálkozásának maximális számát kényszerként, beleértve azt is, hogy egy tevékenységet mindig újrapróbálkoznak-e, vagy soha nem próbálkoznak újra. A tevékenység újrapróbálkozása azt jelenti, hogy ha a feladat meghiúsul, a rendszer újból lekérdezi a futtatást.
Feladatkezelői feladatok és automatikus leállítás
Tevékenységeket az ügyfélalkalmazás is adhat a feladatokhoz, vagy megadhat egy feladatkezelői tevékenységet is. A feladatkezelői tevékenységek tartalmazzák a feladatok tevékenységeinek létrehozásához szükséges információkat, és a készlet egyik számítási csomópontján futnak. A feladatkezelői feladatot kifejezetten a Batch kezeli; a feladat létrehozása után a rendszer várólistára kerül, és ha nem sikerül, újraindul. A feladatütemezés által létrehozott feladatokhoz feladatkezelői tevékenység szükséges, mert csak így definiálhatók a feladatok a feladat példányosítása előtt.
Alapértelmezés szerint a feladatok akkor is aktív állapotban maradnak, ha már a hozzájuk tartozó összes tevékenység lefutott. Ezt módosíthatja, és beállíthatja, hogy a rendszer automatikusan megszüntesse a feladatot, amikor az ahhoz tartozó összes tevékenység befejeződött. Állítsa a feladat onAllTasksComplete tulajdonságát (OnAllTasksComplete a Batch .NET-ben) *'-ra terminatejob
, hogy automatikusan leállítja a feladatot, ha az összes tevékenysége befejezett állapotban van.
A Batch szolgáltatás úgy tekint egy feladatra, hogy nincs tevékenység, és az összes tevékenysége befejeződött. Ezért ezt a funkciót általában egy feladatkezelői tevékenységgel használjuk. Ha automatikus feladatleállítást szeretne használni feladatkezelő nélkül, először állítsa be egy új feladat OnAllTasksComplete tulajdonságát a értékre noaction
, majd csak azután, terminatejob
hogy befejezte a tevékenységek hozzáadását a feladathoz.
Ütemezett feladatok
A Feladatütemezéssel rendszeresen előforduló feladatokat ütemezhet a Batch szolgáltatásban. A feladatütemezés meghatározza, mikor fussanak a feladatok, és tartalmazza a futtatandó feladatok specifikációit. Megadhatja az ütemezés időtartamát (hogy mennyi ideig és mikor van érvényben az ütemezés), és hogy milyen gyakran jönnek létre feladatok az ütemezett időszakban.
Feladatok
A tevékenységek olyan számítási egységek, amelyek feladathoz vannak társítva, és egy csomóponton futnak. A tevékenységek egy csomóponthoz vannak társítva futtatáshoz, vagy a várólistán vannak, amíg egy csomópont szabaddá válik. Egyszerűen fogalmazva a tevékenységek egy vagy több programot vagy parancsfájlt futtatnak a számítási csomóponton, és ezzel elvégzik az Önnek szükséges feladatokat.
Amikor létrehozza a tevékenységet, a következőket kell megadnia:
A tevékenységhez tartozó parancssort. Ez a parancssor futtatja az alkalmazást vagy parancsfájlt a számítási csomóponton.
Fontos megjegyezni, hogy a parancssor nem rendszerhéj alatt fut. Így nem tudja natívan kihasználni a rendszerhéj előnyeit, például a környezeti változók értékének behelyettesítését (ide tartozik a
PATH
is). Az ilyen funkciók kihasználásához meg kell hívnia a rendszerhéjat a parancssorban, példáulcmd.exe
Windows-csomópontokon vagy/bin/sh
Linuxon:cmd /c MyTaskApplication.exe %MY_ENV_VAR%
/bin/sh -c MyTaskApplication $MY_ENV_VAR
Ha a tevékenységeknek olyan alkalmazást vagy parancsfájlt is futtatniuk kell, amely nem tartozik a csomópont
PATH
- vagy referenciakörnyezet-változói közé, hívja meg explicit módon a rendszerhéját a feladat parancssorából.A feldolgozni kívánt adatokat tartalmazó erőforrásfájlok. Ezeket a fájlokat a rendszer automatikusan a csomópontra másolja egy Azure Storage-fiók Blob Storage-tárhelyéből, mielőtt végrehajtaná a tevékenység parancssorát. További információ: Feladat indítása , fájlok és könyvtárak.
Az alkalmazás számára szükséges környezeti változók. További információ: Környezeti beállítások tevékenységekhez.
Azok a korlátozások, amelyeken belül a tevékenység végrehajtható. Korlátozás például a maximális időtartam, ameddig a tevékenység futhat, a meghiúsult tevékenységek újrapróbálásának maximális száma, valamint a tevékenység munkakönyvtárában tárolt fájlok megőrzésének maximális ideje.
Az ütemezett tevékenység futtatására beállított számítási csomópontra üzembe helyezni kívánt alkalmazáscsomagok. Az alkalmazáscsomagok leegyszerűsítik a tevékenységek által futtatott alkalmazások üzembe helyezését és verziókezelését. A tevékenységszintű alkalmazáscsomagok különösen megosztott készletes környezetekben hasznosak, ahol a különböző feladatok egy készletben futnak, és a rendszer nem törli a készletet a feladat befejezésekor. Ha a feladatnál a készletben kevesebb a tevékenység, mint a csomópont, az alkalmazáscsomagok használatával csökkentheti az adatátviteli igényt, mivel így a rendszer csak azokon a csomópontokon helyezi üzembe az alkalmazást, amelyek ténylegesen futtatják a tevékenységeket.
Egy, a Docker Hubban vagy egy privát beállításjegyzékben található tárolórendszerkép-referencia és további beállítások egy olyan Docker-tároló létrehozásához, amelyben a feladatok a csomóponton futnak. Ezt az információt csak akkor kell meghatározni, ha a készlet tárolókonfigurációval van beállítva.
Megjegyzés
Egy tevékenység maximális élettartama, attól kezdve, hogy mikor kerül a feladathoz, és mikor fejeződik be, 180 nap. A befejezett tevékenységek 7 napig megmaradnak; A maximális élettartamon belül nem elvégzett tevékenységek adatai nem érhetők el.
A csomóponton történő számításhoz definiált feladatok mellett számos speciális feladatot is biztosít a Batch szolgáltatás:
- Indítási tevékenység
- Feladatkezelő-tevékenység
- Feladat-előkészítési és -kiadási tevékenységek
- Többpéldányos tevékenységek
- Tevékenységfüggőségek
Indítási tevékenység
A készlethez társított indítási tevékenység segítségével előkészítheti a csomópontok működési környezetét. Elvégeztethet például különböző műveleteket, például a tevékenységek által futtatandó alkalmazások telepítését, illetve a háttérfolyamatok elindítását. A kezdő tevékenység minden alkalommal fut, amikor egy csomópont elindul, amíg a készletben marad. Ez magában foglalja azt is, hogy a csomópont mikor kerül először a készletbe, és mikor indul újra vagy újra.
Az indítási tevékenység elsődleges előnye, hogy tartalmazhatja a számítási csomópontok konfigurálásához szükséges, illetve a feladatok végrehajtásához szükséges alkalmazások telepítéséhez szükséges összes információt. Így a készletekben működő csomópontok számának növelése rendkívül egyszerű, csupán a csomópontok új tervezett számát kell meghatároznia. A kezdési feladat megadja a Batch szolgáltatáshoz szükséges információkat az új csomópontok konfigurálásához és a feladatok elfogadásához való felkészüléshez.
Ahogy a többi Azure Batch-tevékenységnél, itt is megadhatja az Azure Storage-tárterületen tárolt erőforrásfájlokat, illetve a futtatandó parancssort. A Batch szolgáltatás először az erőforrásfájlokat másolja a csomópontra az Azure Storage-tárterületből, majd futtatja a megadott parancssort. A készletekhez tartozó indítási tevékenységek esetében a fájllista általában a tevékenységhez tartozó alkalmazást és annak függőségeit tartalmazza.
Ezeken felül azonban szerepelhetnek az indítási tevékenységben a számítási csomóponton futó összes tevékenység számára felhasználható referenciaadatok is. A start tevékenység parancssora például végrehajthat egy robocopy
műveletet az alkalmazásfájlok (amelyek erőforrásfájlokként lettek megadva és a csomópontra lettek letöltve) a kezdő tevékenység munkakönyvtárából a megosztott mappába, majd futtasson egy MSI-t vagy setup.exe
.
Általában azt szeretné, hogy a Batch szolgáltatás megvárja a kezdési feladat befejezését, mielőtt figyelembe venné, hogy a csomópont készen áll a tevékenységek hozzárendelésére. Ezt azonban igény szerint másként is konfigurálhatja.
Ha egy indítási tevékenység meghiúsul egy számítási csomóponton, akkor a csomópont állapota úgy frissül, hogy tükrözze a hibát, és a csomóponthoz nem lesz hozzárendelve egyetlen tevékenység sem. Az indítási tevékenység meghiúsulhat, ha hiba történik az erőforrásfájloknak a tárterületről való másolásakor, illetve ha a parancssor által futtatott folyamat nullától eltérő kilépési kódot ad vissza.
Amikor meglévő készlethez ad indítási tevékenységet, vagy ilyen készlethez tartozó tevékenységet frissít, újra kell indítania a számítási csomópontokat, hogy a rendszer az összes csomópontra alkalmazza az indítási tevékenységet.
Megjegyzés
A Batch korlátozza az indítási tevékenységek méretét, amibe az erőforrásfájlok és a környezeti változók is beletartoznak. Ha csökkentenie kell egy indítási tevékenység méretét, a következő két megoldás közül választhat:
Az alkalmazáscsomagok segítségével alkalmazások vagy adatok terjeszthetők a Batch-készlet összes csomópontján. Az alkalmazáscsomagokkal kapcsolatban további információkat a Batch-alkalmazáscsomagokkal számítási csomópontokra végzett alkalmazástelepítést ismertető cikkben talál.
Manuálisan is létrehozhatja az alkalmazások fájljait tartalmazó tömörített archívumot. Töltse fel a tömörített archívumot az Azure Storage-ba blobként. Adja meg a kezdő tevékenységhez erőforrásfájlként a ZIP-archívumot. A kezdő tevékenység parancssorának futtatása előtt csomagolja ki a parancssorból az archívumot.
Az archívum kibontásához használhatja az Ön által választott archiválási eszközt. Mellékelnie kell azt az eszközt, amellyel az archívumot kicsomagolja a kezdő tevékenység erőforrás-fájljaként.
Feladatkezelő tevékenység
Általában feladatkezelői feladatokat használ a feladatok végrehajtásának vezérlésére és/vagy figyelésére. A feladatkezelői feladatokat például gyakran használják a feladatok tevékenységeinek létrehozására és elküldésére, a futtatandó további tevékenységek meghatározására és a munka befejezésének meghatározására.
A feladatkezelői tevékenység azonban más célokra is használható, Ez egy teljes értékű feladat, amely képes végrehajtani a feladathoz szükséges műveleteket. A feladatkezelői tevékenység például letöltheti a paraméterként meghatározott fájlt, elemezheti a fájl tartalmát, és további tevékenységeket küldhet el a tartalom alapján.
A rendszer minden más feladat előtt indítja el a feladatkezelői tevékenységeket. Ez a tevékenység a következő jellemzőkkel bír:
- A Batch szolgáltatás automatikusan küldi el ezeket tevékenységekként a feladat létrehozásakor.
- Úgy vannak ütemezve, hogy a feladatok más tevékenységei előtt fussanak.
- A hozzájuk társított csomópontot távolítja el a rendszer utoljára a készletből a készlet méretének csökkentésekor.
- A befejezésük a feladat összes tevékenységének befejezéséhez köthető.
- A feladatkezelői tevékenység a legmagasabb prioritást kapja, ha újra kell indítani. Ha egy tétlen csomópont nem érhető el, a Batch szolgáltatás leállíthatja valamelyik másik futó tevékenységet a készletben, hogy helyet szabadítson fel a feladatkezelői tevékenység futtatásához.
- Az egyik feladat feladatkezelő tevékenysége nem rendelkezik nagyobb prioritással, mint más feladatok tevékenységei. A feladatok között csak a feladatszintű prioritások érvényesek.
Feladat-előkészítési és -kiadási tevékenységek
A Batch feladat-előkészítési feladatokat biztosít a feladat-végrehajtás előtti beállításhoz, valamint feladatkiadási feladatokat a feladat utáni karbantartáshoz vagy karbantartáshoz.
A feladat-előkészítési tevékenység minden olyan számítási csomóponton lefut, amely tevékenységek futtatására van ütemezve a többi feladat végrehajtása előtt. Egy feladat-előkészítési feladattal például másolhatja az összes tevékenység által megosztott, de a feladat egyedi adatait.
Ha egy feladat befejeződött, a feladatkiadási tevékenység a készlet minden olyan csomópontján fut, amely legalább egy tevékenységet végrehajtott. Egy feladatkiadási tevékenység törölheti például a feladat-előkészítési tevékenység által másolt adatokat, vagy tömörítheti és feltöltheti a diagnosztikai naplóadatokat.
Mind a feladat-előkészítési, mind a feladatkiadási tevékenységeknél megadhat egy parancssort, amelyet futtatni szeretne a tevékenység meghívásakor. Ezek segítségével számos különböző funkciót érhet el, például fájlokat tölthet le, emelt jogosultsági szintű futtatást végezhet, egyéni környezeti változókat adhat meg, illetve beállíthatja a maximális végrehajtási időt, az újrapróbálások számát, illetve a fájlmegőrzési időt.
A feladatelőkészítési és -kiadási tevékenységekkel kapcsolatos további információért lásd: Feladat-előkészítési és -befejezési műveletek futtatása Azure Batch számítási csomópontokon.
Többpéldányos tevékenység
A többpéldányos tevékenységek olyan tevékenységek, amelyek több számítási csomóponton való egyidejű futtatásra vannak konfigurálva. A többpéldányos feladatok lehetővé teszik olyan nagy teljesítményű számítási forgatókönyvek engedélyezését, amelyekhez egy számítási csomópontok egy csoportja van lefoglalva egyetlen számítási feladat, például az Üzenetátadási felület (MPI) feldolgozásához.
A Batch szolgáltatásban az MPI-feladatok Batch .NET-könyvtárral való futtatásának részletes leírásáért lásd: Use multi-instance tasks to run Message Passing Interface (MPI) applications in Azure Batch (Többpéldányos tevékenységek használata Message Passing Interface- (MPI-) alkalmazások futtatásához az Azure Batch szolgáltatásban).
Tevékenységfüggőségek
A tevékenységfüggőségek, ahogy a neve is mutatja, lehetővé teszik annak megadását, hogy egy tevékenység más tevékenységek befejezésétől függ a végrehajtás előtt. Ez a funkció olyan helyzeteket támogat, amelyekben egy „alsóbb rétegbeli” tevékenység egy „felsőbb rétegbeli” tevékenység kimenetét használja, vagy amikor egy felsőbb rétegbeli tevékenység alsóbb rétegbeli tevékenység által igényelt inicializálást végez.
A funkció használatához először engedélyeznie kell a tevékenységfüggőségeket a Batch-feladatban. Ezután az egy másik (vagy sok másik) tevékenységtől függő mindegyik tevékenységhez meg kell adnia azokat a tevékenységeket, amelyektől függnek.
A tevékenységfüggőségekkel a következőkhöz hasonló forgatókönyveket konfigurálhat:
- A taskBa taskA-tól függ (a taskB csak akkor kezdi meg a végrehajtást, ha a taskA befejeződött).
- A taskC a taskA és a taskB függvénytől is függ.
- A taskD egy tevékenységtartománytól függ, például az 1 – 10. tevékenység befejeződéséig nem hajtja végre a rendszer.
További részletekért lásd: Tevékenységfüggőségek az Azure Batch-ban és a TaskDependencies kódminta az azure-batch-samples GitHub-adattárban.
Környezeti beállítások tevékenységekhez
A Batch-szolgáltatás által végrehajtott minden egyes feladat hozzáférhet azokhoz a környezeti változókhoz, amelyeket a számítási csomópontokon beállít. Ide tartoznak a Batch szolgáltatás által definiált környezeti változók és a tevékenységekhez definiálható egyéni környezeti változók. A tevékenységek által végrehajtott alkalmazások és szkriptek hozzáféréssel rendelkeznek ezekhez a környezeti változókhoz a végrehajtás során.
Az egyéni környezeti változókat a tevékenységek és a feladatok szintjén is megadhatja: ehhez töltse ki a kívánt elemek környezeti beállítások tulajdonságait. További részletekért lásd: Feladat hozzáadása feladatművelethez (Batch REST) vagy CloudTask.EnvironmentSettings és CloudJob.CommonEnvironmentSettings tulajdonságok a Batch .NET-ben.
Az ügyfélalkalmazás vagy szolgáltatás a Get information about a task (Tevékenység információinak lekérése) művelet (Batch REST) segítségével, vagy a CloudTask.EnvironmentSettings tulajdonság (Batch .NET) elérésével képes beszerezni a tevékenység (szolgáltatás által meghatározott és egyéni) környezeti változóit. A számítási csomóponton végrehajtott folyamatok például a közismert %VARIABLE_NAME%
(Windows) vagy a $VARIABLE_NAME
(Linux) szintaxis segítségével képesek elérni ezeket és más környezeti változókat a csomóponton.
A szolgáltatás által definiált környezeti változók listáját a Számítási csomópont környezeti változói között találja.
Következő lépések
- Tudnivalók a fájlokról és könyvtárakról.