BatchJobPreparationTask interface
Feladat-előkészítési feladat, amelyet a feladat bármely tevékenysége előtt futtatni kell egy adott számítási csomóponton. A feladat-előkészítéssel előkészíthet egy csomópontot a feladat feladatainak futtatására. A feladat-előkészítés során gyakran végrehajtott tevékenységek a következők: A feladat összes feladata által használt gyakori erőforrásfájlok letöltése. A feladat-előkészítési feladat letöltheti ezeket a gyakori erőforrásfájlokat a csomópont megosztott helyére. (AZ_BATCH_NODE_ROOT_DIR\megosztott), vagy elindíthat egy helyi szolgáltatást a csomóponton, hogy a feladat összes feladata kommunikálni tudjon vele. Ha a feladat-előkészítési feladat meghiúsul (azaz kimeríti az újrapróbálkozási számát, mielőtt kilépne a 0-s kilépési kóddal), a Batch nem futtatja a feladat feladatait a csomóponton. A számítási csomópont nem jogosult a feladat feladatainak futtatására, amíg újra nem épül. A számítási csomópont aktív marad, és más feladatokhoz is használható. A feladat-előkészítési feladat többször is futtatható ugyanazon a csomóponton. Ezért meg kell írnia a feladat-előkészítési feladatot az újbóli végrehajtás kezeléséhez. Ha a csomópont újraindul, a feladat-előkészítési feladat újra fut a számítási csomóponton a feladat bármely más tevékenységének ütemezése előtt, ha az újrafuttatása Igaz, vagy ha a feladat-előkészítési tevékenység korábban nem fejeződött be. Ha a csomópont újra van építve, a feladat bármely tevékenységének ütemezése előtt a feladat-előkészítési feladat újra lefut. A Batch újrapróbálkozza a feladatokat, ha egy helyreállítási művelet aktiválódik egy csomóponton. A helyreállítási műveletek közé tartoznak például (de nem kizárólagosan), ha egy nem megfelelő csomópont újraindul, vagy egy számítási csomópont a gazdagép hibája miatt eltűnt. A helyreállítási műveletek miatti újrapróbálkozások függetlenek a maxTaskRetryCount értékétől, és nem számítanak bele. Még ha a maxTaskRetryCount száma 0 is, belső újrapróbálkozhat egy helyreállítási művelet miatt. Emiatt minden tevékenységnek idempotensnek kell lennie. Ez azt jelenti, hogy a tevékenységeknek el kell viselnie a megszakítást és az újraindítást anélkül, hogy sérülést vagy duplikált adatokat okoznak. A hosszú ideig futó feladatok ajánlott eljárása az ellenőrzőpontok valamilyen formájának használata.
Tulajdonságok
| command |
A Munkafelkészítő feladat parancssora. A parancssor nem rendszerhéj alatt fut, ezért nem tudja kihasználni a rendszerhéj funkcióit, például a környezeti változók bővítését. Ha ki akarod használni az ilyen funkciókat, hívd meg a shellet a parancssorban, például a "cmd /c MyCommand" Windows-ben vagy a "/bin/sh -c MyCommand" használatával Linuxban. Ha a parancssor fájlelérési utakra hivatkozik, akkor relatív elérési utat kell használnia (a Feladat munkakönyvtárához képest), vagy a Batch által megadott környezeti változót (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| constraints | A Munkára Felkészítő Feladatra vonatkozó korlátok. |
| container |
A konténernek a beállításai, amelyen a Munka Előkészítő Feladat fut. Ha ezt megadják, az összes AZ_BATCH_NODE_ROOT_DIR alatti könyvtár (a csomóponton lévő Azure Batch könyvtár gyökere) rekurzívan a konténerbe kerül, az összes Feladatkörnyezet változót a konténerbe képezik, és a Feladat parancssort a konténerben futtatják. A konténerben AZ_BATCH_NODE_ROOT_DIR kívül előállított fájlok nem feltétlenül tükröződnek a hasztlemezre, ami azt jelenti, hogy a Batch fájl API-k nem férnek hozzá ezekhez a fájlokhoz. |
| environment |
A Munkafelkészítő feladat környezeti változóbeállításainak listája. |
| id | Egy sor, amely egyedien azonosítja a Munkafelkészítő feladatot a Munkán belül. Az azonosító bármilyen alfanumerikus karakterkombinációt tartalmazhat, beleértve a kötőjeleket és aláhúzásokat, és nem tartalmazhat 64 karakternél többet. Ha nem megadod ezt a tulajdonságot, a Batch szolgáltatás alapértelmezett értéket ad 'jobpreparation'-nak. A Feladat többi feladata nem rendelkezik ugyanazzal az azonosítóval, mint a Feladat előkészítő feladata. Ha megpróbálsz ugyanazzal az azonosítóval beküldeni egy feladatot, a Batch szolgáltatás elutasítja a kérést a TaskIdSameAsJobPreparationTask hibakóddal; ha közvetlenül a REST API-t hívod, a HTTP státuszkód 409 (Konfliktus). |
| rerun |
Hogy a Batch szolgáltatásnak újra kell futtatnia a Feladatfelkészítő feladatot egy Compute Node újraindítása után. A Feladat Előkészítő Feladatot mindig újrafuttatják, ha egy Compute Node újraképzett, vagy ha a Feladat nem fejeződött be (például mert az újraindítás a feladat futása közben történt). Ezért mindig írj egy Állásfelkészítő feladatot, hogy az egyformáns és helyesen viselkedjen, ha többször is lefuttatod. Az alapértelmezett érték igaz. |
| resource |
Azon fájlok listája, amelyeket a Batch szolgáltatás a parancssor futtatása előtt letölt a számítási csomópontra. Az elem alatt felsorolt fájlok a tevékenység munkakönyvtárában találhatók. Az erőforrásfájlok listájának maximális mérete van. A maximális méret túllépésekor a kérés sikertelen lesz, a válasz hibakódja pedig RequestEntityTooLarge lesz. Ha ez történik, a ResourceFiles gyűjteményét csökkenteni kell. Ez .zip fájlok, alkalmazáscsomagok vagy Docker-tárolók használatával érhető el. |
| user |
Az a felhasználói azonosító, amely alatt a Feladatfelkészítő feladat fut. Ha kihagyják, a feladat nem adminisztratív felhasználóként fut, amely egyedileg a Windows Compute Nodes-on a Feladathoz kapcsolódik, vagy nem adminisztratív felhasználóként működik a Linux Compute Nodes-on a Pool-ban. |
| wait |
Hogy a Batch szolgáltatásnak várja-e a Feladat sikeres befejezésére, mielőtt a Compute Node-on bármely más feladatot ütemezne. Egy Munkafelkészítő feladat sikeresen teljesített, ha 0-s kilépési kóddal lép ki. Ha igaz, és a Feladat Előkészítő feladat meghibásodik egy csomóponton, a Batch szolgáltatás újrapróbálja a Feladat Előkészítő feladatát a maximális újrapróbálkozási számig (ahogy a korlátozások elemben szerepel). Ha a feladat minden próbálkozás után sem fejezte be sikeresen, akkor a Batch szolgáltatás nem ütemezi a feladatokat a csomóponthoz. A csomópont továbbra is aktív és jogosult más feladatok feladatainak futtatására. Ha hamis, a Batch szolgáltatás nem várja meg, amíg a Munka Előkészítő Feladat befejeződik. Ebben az esetben a feladat többi feladata elkezdheti végrehajtani a Compute Node-on, miközben a Feladat még fut; és még ha a Feladat előkészítő feladat nem sikerül is, az új feladatok továbbra is időzítve lesznek a Compute Node-on. Az alapértelmezett érték igaz. |
Tulajdonság adatai
commandLine
A Munkafelkészítő feladat parancssora. A parancssor nem rendszerhéj alatt fut, ezért nem tudja kihasználni a rendszerhéj funkcióit, például a környezeti változók bővítését. Ha ki akarod használni az ilyen funkciókat, hívd meg a shellet a parancssorban, például a "cmd /c MyCommand" Windows-ben vagy a "/bin/sh -c MyCommand" használatával Linuxban. Ha a parancssor fájlelérési utakra hivatkozik, akkor relatív elérési utat kell használnia (a Feladat munkakönyvtárához képest), vagy a Batch által megadott környezeti változót (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Tulajdonság értéke
string
constraints
A Munkára Felkészítő Feladatra vonatkozó korlátok.
constraints?: BatchTaskConstraints
Tulajdonság értéke
containerSettings
A konténernek a beállításai, amelyen a Munka Előkészítő Feladat fut. Ha ezt megadják, az összes AZ_BATCH_NODE_ROOT_DIR alatti könyvtár (a csomóponton lévő Azure Batch könyvtár gyökere) rekurzívan a konténerbe kerül, az összes Feladatkörnyezet változót a konténerbe képezik, és a Feladat parancssort a konténerben futtatják. A konténerben AZ_BATCH_NODE_ROOT_DIR kívül előállított fájlok nem feltétlenül tükröződnek a hasztlemezre, ami azt jelenti, hogy a Batch fájl API-k nem férnek hozzá ezekhez a fájlokhoz.
containerSettings?: BatchTaskContainerSettings
Tulajdonság értéke
environmentSettings
A Munkafelkészítő feladat környezeti változóbeállításainak listája.
environmentSettings?: EnvironmentSetting[]
Tulajdonság értéke
id
Egy sor, amely egyedien azonosítja a Munkafelkészítő feladatot a Munkán belül. Az azonosító bármilyen alfanumerikus karakterkombinációt tartalmazhat, beleértve a kötőjeleket és aláhúzásokat, és nem tartalmazhat 64 karakternél többet. Ha nem megadod ezt a tulajdonságot, a Batch szolgáltatás alapértelmezett értéket ad 'jobpreparation'-nak. A Feladat többi feladata nem rendelkezik ugyanazzal az azonosítóval, mint a Feladat előkészítő feladata. Ha megpróbálsz ugyanazzal az azonosítóval beküldeni egy feladatot, a Batch szolgáltatás elutasítja a kérést a TaskIdSameAsJobPreparationTask hibakóddal; ha közvetlenül a REST API-t hívod, a HTTP státuszkód 409 (Konfliktus).
id?: string
Tulajdonság értéke
string
rerunOnNodeRebootAfterSuccess
Hogy a Batch szolgáltatásnak újra kell futtatnia a Feladatfelkészítő feladatot egy Compute Node újraindítása után. A Feladat Előkészítő Feladatot mindig újrafuttatják, ha egy Compute Node újraképzett, vagy ha a Feladat nem fejeződött be (például mert az újraindítás a feladat futása közben történt). Ezért mindig írj egy Állásfelkészítő feladatot, hogy az egyformáns és helyesen viselkedjen, ha többször is lefuttatod. Az alapértelmezett érték igaz.
rerunOnNodeRebootAfterSuccess?: boolean
Tulajdonság értéke
boolean
resourceFiles
Azon fájlok listája, amelyeket a Batch szolgáltatás a parancssor futtatása előtt letölt a számítási csomópontra. Az elem alatt felsorolt fájlok a tevékenység munkakönyvtárában találhatók. Az erőforrásfájlok listájának maximális mérete van. A maximális méret túllépésekor a kérés sikertelen lesz, a válasz hibakódja pedig RequestEntityTooLarge lesz. Ha ez történik, a ResourceFiles gyűjteményét csökkenteni kell. Ez .zip fájlok, alkalmazáscsomagok vagy Docker-tárolók használatával érhető el.
resourceFiles?: ResourceFile[]
Tulajdonság értéke
userIdentity
Az a felhasználói azonosító, amely alatt a Feladatfelkészítő feladat fut. Ha kihagyják, a feladat nem adminisztratív felhasználóként fut, amely egyedileg a Windows Compute Nodes-on a Feladathoz kapcsolódik, vagy nem adminisztratív felhasználóként működik a Linux Compute Nodes-on a Pool-ban.
userIdentity?: UserIdentity
Tulajdonság értéke
waitForSuccess
Hogy a Batch szolgáltatásnak várja-e a Feladat sikeres befejezésére, mielőtt a Compute Node-on bármely más feladatot ütemezne. Egy Munkafelkészítő feladat sikeresen teljesített, ha 0-s kilépési kóddal lép ki. Ha igaz, és a Feladat Előkészítő feladat meghibásodik egy csomóponton, a Batch szolgáltatás újrapróbálja a Feladat Előkészítő feladatát a maximális újrapróbálkozási számig (ahogy a korlátozások elemben szerepel). Ha a feladat minden próbálkozás után sem fejezte be sikeresen, akkor a Batch szolgáltatás nem ütemezi a feladatokat a csomóponthoz. A csomópont továbbra is aktív és jogosult más feladatok feladatainak futtatására. Ha hamis, a Batch szolgáltatás nem várja meg, amíg a Munka Előkészítő Feladat befejeződik. Ebben az esetben a feladat többi feladata elkezdheti végrehajtani a Compute Node-on, miközben a Feladat még fut; és még ha a Feladat előkészítő feladat nem sikerül is, az új feladatok továbbra is időzítve lesznek a Compute Node-on. Az alapértelmezett érték igaz.
waitForSuccess?: boolean
Tulajdonság értéke
boolean