Delen via


BatchJobPreparationTask interface

Een taakvoorbereidingstaak die moet worden uitgevoerd voordat taken van de taak op een bepaald rekenknooppunt worden uitgevoerd. U kunt jobvoorbereiding gebruiken om een knooppunt voor te bereiden om taken voor de taak uit te voeren. Activiteiten die vaak worden uitgevoerd in taakvoorbereiding zijn onder andere: algemene resourcebestanden downloaden die door alle taken in de taak worden gebruikt. De taakvoorbereidingstaak kan deze algemene resourcebestanden downloaden naar de gedeelde locatie op het knooppunt. (AZ_BATCH_NODE_ROOT_DIR\shared) of start een lokale service op het knooppunt, zodat alle taken van die taak ermee kunnen communiceren. Als de taakvoorbereidingstaak mislukt (dat wil gezegd, wordt het aantal nieuwe pogingen uitgeput voordat u afsluit met afsluitcode 0), voert Batch taken van deze taak niet uit op het knooppunt. Het rekenknooppunt blijft niet in aanmerking om taken van deze taak uit te voeren totdat deze opnieuw wordt geinstallatiekopie gemaakt. Het rekenknooppunt blijft actief en kan worden gebruikt voor andere taken. De taakvoorbereidingstaak kan meerdere keren worden uitgevoerd op hetzelfde knooppunt. Daarom moet u de jobvoorbereidingstaak schrijven om de heruitvoering af te handelen. Als het knooppunt opnieuw wordt opgestart, wordt de jobvoorbereidingstaak opnieuw uitgevoerd op het rekenknooppunt voordat u een andere taak van de taak plant, als opnieuw uitvoerenOnNodeRebootAfterSuccess waar is of als de taakvoorbereidingstaak nog niet eerder is voltooid. Als het knooppunt opnieuw wordt gemaakt, wordt de taakvoorbereidingstaak opnieuw uitgevoerd voordat u een taak van de taak plant. Batch voert taken opnieuw uit wanneer een herstelbewerking wordt geactiveerd op een knooppunt. Voorbeelden van herstelbewerkingen zijn (maar zijn niet beperkt tot) wanneer een beschadigd knooppunt opnieuw wordt opgestart of een rekenknooppunt is verdwenen vanwege een hostfout. Nieuwe pogingen vanwege herstelbewerkingen zijn onafhankelijk van en worden niet meegeteld voor maxTaskRetryCount. Zelfs als maxTaskRetryCount 0 is, kan er een interne nieuwe poging worden uitgevoerd vanwege een herstelbewerking. Daarom moeten alle taken idempotent zijn. Dit betekent dat taken moeten worden onderbroken en opnieuw moeten worden gestart zonder beschadiging of dubbele gegevens te veroorzaken. De aanbevolen procedure voor langlopende taken is om een vorm van controlepunten te gebruiken.

Eigenschappen

commandLine

De opdrachtregel van de jobvoorbereidingstaak. De opdrachtregel wordt niet uitgevoerd onder een shell en kan daarom niet profiteren van shell-functies zoals uitbreiding van omgevingsvariabelen. Als u van dergelijke functies wilt profiteren, moet u de shell aanroepen op de opdrachtregel, bijvoorbeeld met 'cmd /c MyCommand' in Windows of '/bin/sh -c MyCommand' in Linux. Als de opdrachtregel verwijst naar bestandspaden, moet deze een relatief pad gebruiken (ten opzichte van de werkmap Taak) of de door Batch geleverde omgevingsvariabele (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).

constraints

Beperkingen die van toepassing zijn op de jobvoorbereidingstaak.

containerSettings

De instellingen voor de container waaronder de jobvoorbereidingstaak wordt uitgevoerd. Wanneer dit is opgegeven, worden alle mappen recursief onder de AZ_BATCH_NODE_ROOT_DIR (de hoofdmap van Azure Batch-mappen op het knooppunt) toegewezen aan de container, worden alle omgevingsvariabelen van de taak toegewezen aan de container en wordt de opdrachtregel Taak uitgevoerd in de container. Bestanden die worden geproduceerd in de container buiten AZ_BATCH_NODE_ROOT_DIR worden mogelijk niet weergegeven op de hostschijf, wat betekent dat Batch-bestands-API's geen toegang hebben tot deze bestanden.

environmentSettings

Een lijst met omgevingsvariabeleinstellingen voor de jobvoorbereidingstaak.

id

Een tekenreeks die de jobvoorbereidingstaak uniek identificeert binnen de taak. De id kan elke combinatie van alfanumerieke tekens bevatten, inclusief afbreekstreepjes en onderstrepingstekens en mag niet meer dan 64 tekens bevatten. Als u deze eigenschap niet opgeeft, wijst de Batch-service een standaardwaarde van jobpreparation toe. Er kan geen andere taak in de taak dezelfde id hebben als de jobvoorbereidingstaak. Als u een taak met dezelfde id probeert in te dienen, weigert de Batch-service de aanvraag met foutcode TaskIdSameAsJobPreparationTask; als u de REST API rechtstreeks aanroept, is de HTTP-statuscode 409 (conflict).

rerunOnNodeRebootAfterSuccess

Of de Batch-service de taakvoorbereidingstaak opnieuw moet uitvoeren nadat een rekenknooppunt opnieuw is opgestart. De taakvoorbereidingstaak wordt altijd opnieuw uitgevoerd als er een installatiekopie van een rekenknooppunt wordt gemaakt of als de taakvoorbereidingstaak niet is voltooid (bijvoorbeeld omdat het opnieuw opstarten is opgetreden tijdens het uitvoeren van de taak). Daarom moet u altijd een taakvoorbereidingstaak schrijven om idempotent te zijn en zich correct te gedragen als deze meerdere keren wordt uitgevoerd. De standaardwaarde is waar.

resourceFiles

Een lijst met bestanden die de Batch-service naar het rekenknooppunt downloadt voordat u de opdrachtregel uitvoert. Bestanden die onder dit element worden vermeld, bevinden zich in de werkmap van de taak. Er is een maximale grootte voor de lijst met resourcebestanden. Wanneer de maximale grootte wordt overschreden, mislukt de aanvraag en is de antwoordfoutcode RequestEntityTooLarge. Als dit het geval is, moet de verzameling ResourceFiles worden verkleind. Dit kan worden bereikt met behulp van .zip bestanden, toepassingspakketten of Docker-containers.

userIdentity

De gebruikersidentiteit waaronder de jobvoorbereidingstaak wordt uitgevoerd. Als u dit weglaat, wordt de taak uitgevoerd als een niet-beheerdersgebruiker die uniek is voor de taak op Windows-rekenknooppunten of als een niet-beheerdersgebruiker die uniek is voor de pool op Linux-rekenknooppunten.

waitForSuccess

Of de Batch-service moet wachten tot de taakvoorbereidingstaak is voltooid voordat u andere taken van de taak op het rekenknooppunt plant. Een taakvoorbereidingstaak is voltooid als deze wordt afgesloten met afsluitcode 0. Als waar is en de taakvoorbereidingstaak op een knooppunt mislukt, probeert de Batch-service de jobvoorbereidingstaak opnieuw uit te voeren tot het maximumaantal nieuwe pogingen (zoals opgegeven in het beperkingselement). Als de taak na alle nieuwe pogingen nog steeds niet is voltooid, plant de Batch-service geen taken van de taak naar het knooppunt. Het knooppunt blijft actief en komt in aanmerking voor het uitvoeren van taken van andere taken. Als dit onwaar is, wacht de Batch-service niet tot de taakvoorbereidingstaak is voltooid. In dit geval kunnen andere taken van de taak worden uitgevoerd op het rekenknooppunt terwijl de taakvoorbereidingstaak nog steeds wordt uitgevoerd; en zelfs als de taakvoorbereiding mislukt, blijven nieuwe taken gepland op het rekenknooppunt. De standaardwaarde is waar.

Eigenschapdetails

commandLine

De opdrachtregel van de jobvoorbereidingstaak. De opdrachtregel wordt niet uitgevoerd onder een shell en kan daarom niet profiteren van shell-functies zoals uitbreiding van omgevingsvariabelen. Als u van dergelijke functies wilt profiteren, moet u de shell aanroepen op de opdrachtregel, bijvoorbeeld met 'cmd /c MyCommand' in Windows of '/bin/sh -c MyCommand' in Linux. Als de opdrachtregel verwijst naar bestandspaden, moet deze een relatief pad gebruiken (ten opzichte van de werkmap Taak) of de door Batch geleverde omgevingsvariabele (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).

commandLine: string

Waarde van eigenschap

string

constraints

Beperkingen die van toepassing zijn op de jobvoorbereidingstaak.

constraints?: BatchTaskConstraints

Waarde van eigenschap

containerSettings

De instellingen voor de container waaronder de jobvoorbereidingstaak wordt uitgevoerd. Wanneer dit is opgegeven, worden alle mappen recursief onder de AZ_BATCH_NODE_ROOT_DIR (de hoofdmap van Azure Batch-mappen op het knooppunt) toegewezen aan de container, worden alle omgevingsvariabelen van de taak toegewezen aan de container en wordt de opdrachtregel Taak uitgevoerd in de container. Bestanden die worden geproduceerd in de container buiten AZ_BATCH_NODE_ROOT_DIR worden mogelijk niet weergegeven op de hostschijf, wat betekent dat Batch-bestands-API's geen toegang hebben tot deze bestanden.

containerSettings?: BatchTaskContainerSettings

Waarde van eigenschap

environmentSettings

Een lijst met omgevingsvariabeleinstellingen voor de jobvoorbereidingstaak.

environmentSettings?: EnvironmentSetting[]

Waarde van eigenschap

id

Een tekenreeks die de jobvoorbereidingstaak uniek identificeert binnen de taak. De id kan elke combinatie van alfanumerieke tekens bevatten, inclusief afbreekstreepjes en onderstrepingstekens en mag niet meer dan 64 tekens bevatten. Als u deze eigenschap niet opgeeft, wijst de Batch-service een standaardwaarde van jobpreparation toe. Er kan geen andere taak in de taak dezelfde id hebben als de jobvoorbereidingstaak. Als u een taak met dezelfde id probeert in te dienen, weigert de Batch-service de aanvraag met foutcode TaskIdSameAsJobPreparationTask; als u de REST API rechtstreeks aanroept, is de HTTP-statuscode 409 (conflict).

id?: string

Waarde van eigenschap

string

rerunOnNodeRebootAfterSuccess

Of de Batch-service de taakvoorbereidingstaak opnieuw moet uitvoeren nadat een rekenknooppunt opnieuw is opgestart. De taakvoorbereidingstaak wordt altijd opnieuw uitgevoerd als er een installatiekopie van een rekenknooppunt wordt gemaakt of als de taakvoorbereidingstaak niet is voltooid (bijvoorbeeld omdat het opnieuw opstarten is opgetreden tijdens het uitvoeren van de taak). Daarom moet u altijd een taakvoorbereidingstaak schrijven om idempotent te zijn en zich correct te gedragen als deze meerdere keren wordt uitgevoerd. De standaardwaarde is waar.

rerunOnNodeRebootAfterSuccess?: boolean

Waarde van eigenschap

boolean

resourceFiles

Een lijst met bestanden die de Batch-service naar het rekenknooppunt downloadt voordat u de opdrachtregel uitvoert. Bestanden die onder dit element worden vermeld, bevinden zich in de werkmap van de taak. Er is een maximale grootte voor de lijst met resourcebestanden. Wanneer de maximale grootte wordt overschreden, mislukt de aanvraag en is de antwoordfoutcode RequestEntityTooLarge. Als dit het geval is, moet de verzameling ResourceFiles worden verkleind. Dit kan worden bereikt met behulp van .zip bestanden, toepassingspakketten of Docker-containers.

resourceFiles?: ResourceFile[]

Waarde van eigenschap

userIdentity

De gebruikersidentiteit waaronder de jobvoorbereidingstaak wordt uitgevoerd. Als u dit weglaat, wordt de taak uitgevoerd als een niet-beheerdersgebruiker die uniek is voor de taak op Windows-rekenknooppunten of als een niet-beheerdersgebruiker die uniek is voor de pool op Linux-rekenknooppunten.

userIdentity?: UserIdentity

Waarde van eigenschap

waitForSuccess

Of de Batch-service moet wachten tot de taakvoorbereidingstaak is voltooid voordat u andere taken van de taak op het rekenknooppunt plant. Een taakvoorbereidingstaak is voltooid als deze wordt afgesloten met afsluitcode 0. Als waar is en de taakvoorbereidingstaak op een knooppunt mislukt, probeert de Batch-service de jobvoorbereidingstaak opnieuw uit te voeren tot het maximumaantal nieuwe pogingen (zoals opgegeven in het beperkingselement). Als de taak na alle nieuwe pogingen nog steeds niet is voltooid, plant de Batch-service geen taken van de taak naar het knooppunt. Het knooppunt blijft actief en komt in aanmerking voor het uitvoeren van taken van andere taken. Als dit onwaar is, wacht de Batch-service niet tot de taakvoorbereidingstaak is voltooid. In dit geval kunnen andere taken van de taak worden uitgevoerd op het rekenknooppunt terwijl de taakvoorbereidingstaak nog steeds wordt uitgevoerd; en zelfs als de taakvoorbereiding mislukt, blijven nieuwe taken gepland op het rekenknooppunt. De standaardwaarde is waar.

waitForSuccess?: boolean

Waarde van eigenschap

boolean