Dela via


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

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).

constraints

Begränsningar som gäller för jobbförberedelseaktiviteten.

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.

environmentSettings

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).

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.

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.

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.

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.

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