Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure Batch-feladatok végrehajtása előtt gyakran szükséges a beállítás, illetve a feladatok végrehajtása után a karbantartás. Előfordulhat például, hogy le kell töltenie a feladat bemeneti adatait a számítási csomópontokra, vagy fel kell töltenie a feladat kimeneti adatait az Azure Storage-ba a feladat befejezése után. Ezekhez a műveletekhez feladat-előkészítési és feladatkiadási feladatokat használhat.
- A feladat-előkészítési tevékenység a feladat tevékenységei előtt fut az összes olyan számítási csomóponton, amely legalább egy tevékenység futtatására van ütemezve.
- A feladatkiadási feladat akkor fut, miután a feladat befejeződött, a készlet minden olyan csomópontján, amelyen futott feladat-előkészítési feladat.
A többi Batch-tevékenységhez hasonlóan megadhat egy parancssort is, amelyet meghívhat egy feladat-előkészítési vagy kiadási feladat futtatásakor. A feladat-előkészítési és kiadási feladatok ismerős Batch-feladatfunkciókkal rendelkeznek, például:
- Erőforrásfájl letöltése.
- Magasabb szintű végrehajtás.
- Egyéni környezeti változók.
- Maximális végrehajtási időtartam.
- Újrapróbálkozás száma.
- Fájlmegőrzési idő.
Ez a cikk bemutatja, hogyan használható a BatchJobPreparationTask és BatchJobReleaseTask osztály a Azure. Compute.Batch könyvtár.
Jótanács
A feladat-előkészítési és kiadási feladatok különösen hasznosak a megosztott készletkörnyezetekben , ahol a számítási csomópontok készlete megmarad a feladatfuttatások között, és számos feladat használja.
Használati esetek feladat-előkészítési és kiadási feladatokhoz
A feladat-előkészítési és a feladat-kiadási feladatok a következő forgatókönyvekhez megfelelőek:
Töltse le a gyakori feladatadatokat. A Batch-feladatok gyakran megkövetelik a feladatok tevékenységeinek bemeneteként használt adatok közös készletét. A feladat-előkészítési feladatokkal ezeket az adatokat minden csomópontra letöltheti a feladat egyéb feladatainak végrehajtása előtt.
A napi kockázatelemzési számításokban például a piaci adatok feladatspecifikusak, mégis gyakoriak a feladat összes tevékenységében. A feladat-előkészítési feladat segítségével letöltheti ezeket a gyakran több gigabájt méretű piaci adatokat az egyes számítási csomópontokra, hogy a csomóponton futó tevékenységek használhassák azokat.
Feladat és tevékenység kimenetének törlése. Olyan megosztott készletkörnyezetben, ahol a készlet számítási csomópontjai nem leszerelhetők a feladatok között, előfordulhat, hogy törölnie kell a feladatadatokat a futtatások között. Előfordulhat például, hogy lemezterületet kell megőriznie a csomópontokon, vagy meg kell felelnie a szervezet biztonsági szabályzatainak. Feladat-kiadási tevékenység használatával törölheti azokat az adatokat, amelyeket egy feladat-előkészítési tevékenység letöltött vagy létrehozott.
Naplók megőrzése. Előfordulhat, hogy meg szeretné őrizni a feladatok által létrehozott naplófájlok másolatát, vagy a sikertelen alkalmazások által létrehozott hibaelhárítási fájlokat. A feladatkiadási feladatokkal tömörítheti és feltöltheti ezeket az adatokat egy Azure Storage-fiókba.
Feladat-előkészítési feladat
A feladattevékenységek futtatása előtt a Batch minden olyan számítási csomóponton futtatja a feladat-előkészítési feladatot, amely egy tevékenység futtatására van ütemezve. Alapértelmezés szerint a Batch megvárja, amíg a feladat-előkészítési feladat befejeződik, mielőtt ütemezett feladatokat futtat, de konfigurálhatja, hogy ne várjon.
Ha a csomópont újraindul, a feladat-előkészítési feladat újra fut, de letilthatja ezt a viselkedést is. Ha van egy munkafeladat előkészítési feladata és egy munkakezelő feladata, az előkészítési feladat a munkakezelő feladat előtt fut le, és megelőzi az összes többi feladatot. A feladatelőkészítés mindig először fut.
A feladat-előkészítési tevékenység csak olyan csomópontokon fut, amelyek ütemezve vannak egy tevékenység futtatására. Ez a viselkedés megakadályozza a szükségtelen futtatásokat olyan csomópontokon, amelyekhez nincs hozzárendelve tevékenység. Előfordulhat, hogy a csomópontok nem lesznek hozzárendelve tevékenységekhez, ha a feladattevékenységek száma kisebb, mint a készletben lévő csomópontok száma. Ez a viselkedés akkor is érvényes, ha az egyidejű tevékenységvégrehajtás engedélyezve van, ami miatt egyes csomópontok tétlenek maradnak, ha a tevékenységek száma alacsonyabb, mint a teljes lehetséges egyidejű tevékenység.
Megjegyzés:
A BatchJobPreparationTask eltér a BatchPool.StartTask-tól , amely BatchJobPreparationTask az egyes feladatok elején fut, míg StartTask csak akkor fut, ha egy számítási csomópont először csatlakozik egy készlethez vagy újraindul.
Feladat kiadási feladata
Miután megjelöl egy feladatot befejezettként, a feladatkiadó feladat lefut minden csomóponton a készletben, amely feladat-előkészítési feladatot futtatott. Egy feladatot befejezettként jelölhet meg egy leállítási kérelem kiadásával. Ez a kérés leállítja a feladat állapotát, leállítja a feladathoz társított aktív vagy futó tevékenységeket, és futtatja a feladat kiadási feladatát. A feladat ezután a befejezett állapotba kerül.
Megjegyzés:
A feladat törlése a feladat kiadási feladatát is végrehajtja. Ha azonban egy feladat már le van állítva, a kiadási feladat nem fut második alkalommal, ha a feladatot később törlik.
A feladatkiadási feladatok legfeljebb 15 percig futhatnak, mielőtt a Batch szolgáltatás leállítja őket. További információkért tekintse meg a REST API referenciadokumentációját.
Feladat-előkészítési és feladatfelszabadítási feladatok az Azure.Compute.Batch szolgáltatásban
Feladat-előkészítési feladat futtatásához rendeljen hozzá egy BatchJobPreparationTask objektumot a feladat BatchJobCreateOptions.JobPreparationTask tulajdonságához. Hasonlóképpen, egy feladatfelszabadítási feladat használatához inicializáljon egy BatchJobReleaseTask objektumot, majd rendelje azt hozzá a feladat BatchJobCreateOptions.JobReleaseTask tulajdonságához.
A következő kódrészletben a myBatchClient egy példány a BatchClient, és a myPool egy meglévő készlet a Batch-fiókon belül.
// Specify the command lines for the job preparation and release tasks
string jobPrepCmdLine =
"cmd /c echo %AZ_BATCH_NODE_ID% > %AZ_BATCH_NODE_SHARED_DIR%\\shared_file.txt";
string jobReleaseCmdLine =
"cmd /c del %AZ_BATCH_NODE_SHARED_DIR%\\shared_file.txt";
// Build the job create content for BatchPool "myPool" with preparation and
// release tasks attached.
BatchJobCreateOptions jobContent = new BatchJobCreateOptions(
"JobPrepReleaseSampleJob",
new BatchPoolInfo { PoolId = "myPool" })
{
JobPreparationTask = new BatchJobPreparationTask(jobPrepCmdLine),
JobReleaseTask = new BatchJobReleaseTask(jobReleaseCmdLine)
};
await myBatchClient.CreateJobAsync(jobContent);
A feladat kiadási feladata egy feladat leállásakor vagy törlésekor fut. Egy feladatot a BatchClient.TerminateJobAsync használatával fejezhet be, és a BatchClient.DeleteJobAsync használatával törölhet egy feladatot. A feladatokat általában a tevékenységek befejezésekor vagy az Ön által megadott időtúllépés elérésekor szünteti meg vagy törli.
// Terminate the job to mark it as completed. Terminate initiates the
// job release task on any node that ran job tasks. Note that the
// job release task also runs when a job is deleted, so you don't
// have to call Terminate if you delete jobs after task completion.
await myBatchClient.TerminateJobAsync(WaitUntil.Completed, "JobPrepReleaseSampleJob");
Kódminta a GitHubon
Ha működés közben szeretné megtekinteni a feladatok előkészítését és kiadását, hozza létre és futtassa a JobPrepRelease mintaprojektet a GitHubról. Ez a konzolalkalmazás a következő műveleteket hajtja végre:
- Létrehoz egy két csomópontot tartalmazó medencét.
- Feladat létrehozása feladatelőkészítéssel, kiadással és standard feladatokkal.
- Futtatja a feladat-előkészítési feladatot, amely először egy szövegfájlba írja a csomópont azonosítóját egy csomópont megosztott könyvtárában.
- Minden csomóponton futtat egy feladatot, amely a feladatazonosítóját ugyanarra a szövegfájlra írja.
- Az összes feladat elvégzése vagy az időtúllépés elérése után az egyes csomópontok szövegfájljainak tartalmát a konzolra nyomtatja.
- A feladat kiadási feladatának futtatásával törli a fájlt a csomópontról a feladat befejezésekor.
- Kinyomtatja a feladat-előkészítési és kiadási feladatok kilépési kódjait az egyes futtatott csomópontokhoz.
- Szünetelteti a végrehajtást a feladat és/vagy a készlet törlésének megerősítéséhez.
A mintaalkalmazás kimenete a következő példához hasonló:
Attempting to create pool: JobPrepReleaseSamplePool
Created pool JobPrepReleaseSamplePool with 2 nodes
Checking for existing job JobPrepReleaseSampleJob...
Job JobPrepReleaseSampleJob not found, creating...
Submitting tasks and awaiting completion...
All tasks completed.
Contents of shared\job_prep_and_release.txt on tvm-2434664350_1-20160623t173951z:
-------------------------------------------
tvm-2434664350_1-20160623t173951z tasks:
task001
task004
task005
task006
Contents of shared\job_prep_and_release.txt on tvm-2434664350_2-20160623t173951z:
-------------------------------------------
tvm-2434664350_2-20160623t173951z tasks:
task008
task002
task003
task007
Waiting for job JobPrepReleaseSampleJob to reach state Completed
...
tvm-2434664350_1-20160623t173951z:
Prep task exit code: 0
Release task exit code: 0
tvm-2434664350_2-20160623t173951z:
Prep task exit code: 0
Release task exit code: 0
Delete job? [yes] no
yes
Delete pool? [yes] no
yes
Sample complete, hit ENTER to exit...
Megjegyzés:
Az új készlet csomópontjainak eltérő létrehozási és kezdési időpontjai azt jelentik, hogy egyes csomópontok készen állnak a feladatokra mások előtt, így eltérő kimenet jelenhet meg. Pontosabban, mivel a feladatok gyorsan befejeződnek, a fürt egyik csomópontja futtathatja a munka összes tevékenységét. Ha ez történik, a feladat-előkészítési és kiadási tevékenységek nem léteznek azon csomópont esetében, amely nem futtatott tevékenységeket.
Feladat-előkészítési és kiadási feladatok megtekintése az Azure Portalon
Az Azure Portalon megtekintheti a Batch-feladat tulajdonságait és tevékenységeit, beleértve a feladat-előkészítési és kiadási feladatokat. A Batch-fiók lapján válassza a Feladatok lehetőséget a bal oldali navigációs sávon, majd válasszon ki egy feladatot. Ha futtatja a mintaalkalmazást, lépjen a feladat oldalára a tevékenységek befejezése után, de a feladat és a csoport törlése előtt.
A feladatok előrehaladásának és állapotának monitorozásához bontsa ki a Hozzávetőleges tevékenységek számát a feladat áttekintése vagy a Feladatok lapon.
Az alábbi képernyőképen a JobPrepReleaseSampleJob lap látható a mintaalkalmazás futtatása után. Ebben a feladatban előkészítési és kiadási tevékenységek voltak, így a bal oldali navigációs sávon kiválaszthatja az Előkészítési vagya Kiadási feladatokat a tulajdonságaik megtekintéséhez.
Következő lépések
- További információ a munkák és feladatok hibaellenőrzéséről.
- Megtudhatja, hogyan készítheti elő az alkalmazáscsomagokat a Batch számítási csomópontok feladatvégrehajtásra való előkészítéséhez.
- Megismerheti az adatok és alkalmazások Batch számítási csomópontokra való másolásának különböző módjait.
- Ismerje meg, hogyan őrizheti meg a naplókat és más feladat- és tevékenységkimeneti adatokat az Azure Batch-fájlkonvenciók tárával .