JobPreparationTask interface
Du kan använda Jobbförberedelse för att förbereda en nod för att köra uppgifter för jobbet. Aktiviteter som vanligtvis utförs i Jobbförberedelse omfattar: Ladda ned vanliga resursfiler som används av alla aktiviteter i jobbet. Jobbförberedelseaktiviteten kan ladda ned dessa vanliga resursfiler till den delade platsen på noden. (AZ_BATCH_NODE_ROOT_DIR\shared) eller starta en lokal tjänst på noden så att alla uppgifter i jobbet kan kommunicera med den. Om jobbförberedelseaktiviteten misslyckas (d.v.s. uttömmer antalet återförsök innan den avslutas med slutkod 0) kommer Batch inte att köra uppgifter för det här jobbet på noden. Beräkningsnoden är inte berättigad att köra uppgifter för det här jobbet tills den har återskapats. Beräkningsnoden förblir aktiv och kan användas för andra jobb. Jobbförberedelseaktiviteten kan köras flera gånger på samma nod. Därför bör du skriva jobbförberedelseaktiviteten för att hantera omkörningen. Om noden startas om körs jobbförberedelseaktiviteten igen på beräkningsnoden innan någon annan aktivitet i jobbet schemaläggs, om rerunOnNodeRebootAfterSuccess är sant eller om jobbförberedelseaktiviteten inte slutfördes tidigare. Om noden har återskapats körs jobbförberedelseaktiviteten igen innan någon uppgift i jobbet schemaläggs. Batch försöker utföra uppgifter igen när en återställningsåtgärd utlöses på en nod. Exempel på återställningsåtgärder är (men är inte begränsade till) när en nod med feltillstånd startas om eller en beräkningsnod försvinner på grund av värdfel. Återförsök på grund av återställningsåtgärder är oberoende av och räknas inte mot maxTaskRetryCount. Även om maxTaskRetryCount är 0 kan ett internt återförsök på grund av en återställningsåtgärd inträffa. Därför bör alla aktiviteter vara idempotent. Det innebär att Uppgifter måste tolerera att avbrytas och startas om utan att orsaka skada eller duplicera data. Bästa praxis för långvariga uppgifter är att använda någon form av kontrollpunkter.
Egenskaper
| command |
Kommandoraden för jobbförberedelseaktiviteten. Kommandoraden körs inte under ett gränssnitt och kan därför inte dra nytta av gränssnittsfunktioner som miljövariabelexpansion. Om du vill dra nytta av sådana funktioner bör du anropa gränssnittet på kommandoraden, till exempel med hjälp av "cmd /c MyCommand" i Windows eller "/bin/sh -c MyCommand" i Linux. Om kommandoraden refererar till filsökvägar bör den använda en relativ sökväg (i förhållande till arbetskatalogen Uppgift) eller använda miljövariabeln i Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). |
| constraints | Begränsningar som gäller för jobbförberedelseaktiviteten. |
| container |
Inställningarna för containern under vilken jobbförberedelseaktiviteten körs. När detta anges mappas alla kataloger rekursivt under AZ_BATCH_NODE_ROOT_DIR (roten för Azure Batch-kataloger på noden) till containern, alla miljövariabler för aktivitet mappas till containern och kommandoraden Aktivitet körs i containern. Filer som skapas i containern utanför AZ_BATCH_NODE_ROOT_DIR kanske inte återspeglas på värddisken, vilket innebär att Batch-fil-API:er inte kommer att kunna komma åt dessa filer. |
| environment |
En lista över miljövariabelinställningar för jobbförberedelseaktiviteten. |
| id | En sträng som unikt identifierar jobbförberedelseaktiviteten i jobbet. ID:t kan innehålla valfri kombination av alfanumeriska tecken, inklusive bindestreck och understreck och får inte innehålla fler än 64 tecken. Om du inte anger den här egenskapen tilldelar Batch-tjänsten standardvärdet "jobpreparation". Ingen annan aktivitet i jobbet kan ha samma ID som jobbförberedelseaktiviteten. Om du försöker skicka en aktivitet med samma ID avvisar Batch-tjänsten begäran med felkoden TaskIdSameAsJobPreparationTask. Om du anropar REST-API:et direkt är HTTP-statuskoden 409 (konflikt). |
| rerun |
Om Batch-tjänsten ska köra jobbförberedelseaktiviteten igen när en beräkningsnod startas om. Jobbförberedelseaktiviteten körs alltid på nytt om en beräkningsnod har återskapats, eller om jobbförberedelseaktiviteten inte slutfördes (t.ex. på grund av att omstarten inträffade när aktiviteten kördes). Därför bör du alltid skriva en jobbförberedelseaktivitet för att vara idempotent och fungera korrekt om den körs flera gånger. Standardvärdet är sant. |
| resource |
En lista över filer som Batch-tjänsten laddar ned till beräkningsnoden innan du kör kommandoraden. Filer som visas under det här elementet finns i arbetskatalogen för aktiviteten. Det finns en maximal storlek för listan över resursfiler. När maxstorleken överskrids misslyckas begäran och svarsfelkoden requestEntityTooLarge. Om detta inträffar måste samlingen av ResourceFiles minskas i storlek. Detta kan uppnås med hjälp av .zip filer, programpaket eller Docker-containrar. |
| user |
Användaridentiteten under vilken jobbförberedelseaktiviteten körs. Om den utelämnas körs aktiviteten som en icke-administrativ användare som är unik för aktiviteten på Windows-beräkningsnoder eller en icke-administrativ användare som är unik för poolen på Linux-beräkningsnoder. |
| wait |
Om Batch-tjänsten ska vänta tills jobbförberedelseaktiviteten har slutförts innan du schemalägger andra uppgifter i jobbet på beräkningsnoden. En jobbförberedelseaktivitet har slutförts om den avslutas med slutkod 0. Om sant och jobbförberedelseaktiviteten misslyckas på en nod, försöker Batch-tjänsten att utföra jobbförberedelseaktiviteten igen upp till det maximala antalet återförsök (enligt vad som anges i villkorselementet). Om aktiviteten fortfarande inte har slutförts efter alla återförsök schemalägger inte Batch-tjänsten Uppgifter för jobbet till noden. Noden är fortfarande aktiv och berättigad att köra uppgifter för andra jobb. Om det är falskt väntar inte Batch-tjänsten på att jobbförberedelseaktiviteten ska slutföras. I det här fallet kan andra uppgifter i jobbet börja köras på beräkningsnoden medan jobbförberedelseaktiviteten fortfarande körs. och även om jobbförberedelseaktiviteten misslyckas fortsätter nya aktiviteter att schemaläggas på beräkningsnoden. Standardvärdet är sant. |
Egenskapsinformation
commandLine
Kommandoraden för jobbförberedelseaktiviteten. Kommandoraden körs inte under ett gränssnitt och kan därför inte dra nytta av gränssnittsfunktioner som miljövariabelexpansion. Om du vill dra nytta av sådana funktioner bör du anropa gränssnittet på kommandoraden, till exempel med hjälp av "cmd /c MyCommand" i Windows eller "/bin/sh -c MyCommand" i Linux. Om kommandoraden refererar till filsökvägar bör den använda en relativ sökväg (i förhållande till arbetskatalogen Uppgift) eller använda miljövariabeln i Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Egenskapsvärde
string
constraints
Begränsningar som gäller för jobbförberedelseaktiviteten.
constraints?: TaskConstraints
Egenskapsvärde
containerSettings
Inställningarna för containern under vilken jobbförberedelseaktiviteten körs. När detta anges mappas alla kataloger rekursivt under AZ_BATCH_NODE_ROOT_DIR (roten för Azure Batch-kataloger på noden) till containern, alla miljövariabler för aktivitet mappas till containern och kommandoraden Aktivitet körs i containern. Filer som skapas i containern utanför AZ_BATCH_NODE_ROOT_DIR kanske inte återspeglas på värddisken, vilket innebär att Batch-fil-API:er inte kommer att kunna komma åt dessa filer.
containerSettings?: TaskContainerSettings
Egenskapsvärde
environmentSettings
En lista över miljövariabelinställningar för jobbförberedelseaktiviteten.
environmentSettings?: EnvironmentSetting[]
Egenskapsvärde
id
En sträng som unikt identifierar jobbförberedelseaktiviteten i jobbet. ID:t kan innehålla valfri kombination av alfanumeriska tecken, inklusive bindestreck och understreck och får inte innehålla fler än 64 tecken. Om du inte anger den här egenskapen tilldelar Batch-tjänsten standardvärdet "jobpreparation". Ingen annan aktivitet i jobbet kan ha samma ID som jobbförberedelseaktiviteten. Om du försöker skicka en aktivitet med samma ID avvisar Batch-tjänsten begäran med felkoden TaskIdSameAsJobPreparationTask. Om du anropar REST-API:et direkt är HTTP-statuskoden 409 (konflikt).
id?: string
Egenskapsvärde
string
rerunOnNodeRebootAfterSuccess
Om Batch-tjänsten ska köra jobbförberedelseaktiviteten igen när en beräkningsnod startas om. Jobbförberedelseaktiviteten körs alltid på nytt om en beräkningsnod har återskapats, eller om jobbförberedelseaktiviteten inte slutfördes (t.ex. på grund av att omstarten inträffade när aktiviteten kördes). Därför bör du alltid skriva en jobbförberedelseaktivitet för att vara idempotent och fungera korrekt om den körs flera gånger. Standardvärdet är sant.
rerunOnNodeRebootAfterSuccess?: boolean
Egenskapsvärde
boolean
resourceFiles
En lista över filer som Batch-tjänsten laddar ned till beräkningsnoden innan du kör kommandoraden. Filer som visas under det här elementet finns i arbetskatalogen för aktiviteten. Det finns en maximal storlek för listan över resursfiler. När maxstorleken överskrids misslyckas begäran och svarsfelkoden requestEntityTooLarge. Om detta inträffar måste samlingen av ResourceFiles minskas i storlek. Detta kan uppnås med hjälp av .zip filer, programpaket eller Docker-containrar.
resourceFiles?: ResourceFile[]
Egenskapsvärde
userIdentity
Användaridentiteten under vilken jobbförberedelseaktiviteten körs. Om den utelämnas körs aktiviteten som en icke-administrativ användare som är unik för aktiviteten på Windows-beräkningsnoder eller en icke-administrativ användare som är unik för poolen på Linux-beräkningsnoder.
userIdentity?: UserIdentity
Egenskapsvärde
waitForSuccess
Om Batch-tjänsten ska vänta tills jobbförberedelseaktiviteten har slutförts innan du schemalägger andra uppgifter i jobbet på beräkningsnoden. En jobbförberedelseaktivitet har slutförts om den avslutas med slutkod 0. Om sant och jobbförberedelseaktiviteten misslyckas på en nod, försöker Batch-tjänsten att utföra jobbförberedelseaktiviteten igen upp till det maximala antalet återförsök (enligt vad som anges i villkorselementet). Om aktiviteten fortfarande inte har slutförts efter alla återförsök schemalägger inte Batch-tjänsten Uppgifter för jobbet till noden. Noden är fortfarande aktiv och berättigad att köra uppgifter för andra jobb. Om det är falskt väntar inte Batch-tjänsten på att jobbförberedelseaktiviteten ska slutföras. I det här fallet kan andra uppgifter i jobbet börja köras på beräkningsnoden medan jobbförberedelseaktiviteten fortfarande körs. och även om jobbförberedelseaktiviteten misslyckas fortsätter nya aktiviteter att schemaläggas på beräkningsnoden. Standardvärdet är sant.
waitForSuccess?: boolean
Egenskapsvärde
boolean