BatchStartTask interface
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. In sommige gevallen kan de StartTask opnieuw worden uitgevoerd, ook al is het rekenknooppunt niet opnieuw opgestart. Er moet speciale aandacht worden besteed aan het voorkomen van StartTasks die een breakaway-proces maken of services installeren/starten vanuit de werkmap StartTask, omdat hierdoor Batch niet meer in staat is om de StartTask opnieuw uit te voeren.
Eigenschappen
| command |
De opdrachtregel van de StartTask. 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). |
| container |
De instellingen voor de container waaronder de StartTask 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. |
| environment |
Een lijst met omgevingsvariabele-instellingen voor de StartTask. |
| max |
Het maximum aantal keren dat de taak opnieuw kan worden geprobeerd. De Batch-service probeert een taak opnieuw uit te voeren als de afsluitcode niet-nul is. Houd er rekening mee dat deze waarde specifiek het aantal nieuwe pogingen bepaalt. De Batch-service probeert de taak eenmaal uit en probeert vervolgens opnieuw tot deze limiet. Als het maximumaantal nieuwe pogingen bijvoorbeeld 3 is, probeert Batch de taak maximaal 4 keer (één eerste poging en drie nieuwe pogingen). Als het maximumaantal nieuwe pogingen 0 is, voert de Batch-service de taak niet opnieuw uit. Als het maximumaantal nieuwe pogingen -1 is, probeert de Batch-service de taak opnieuw zonder limiet, maar dit wordt niet aanbevolen voor een begintaak of een andere taak. De standaardwaarde is 0 (geen nieuwe pogingen). |
| resource |
Een lijst met bestanden die de Batch-service naar het rekenknooppunt downloadt voordat u de opdrachtregel uitvoert. 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. Bestanden die onder dit element worden vermeld, bevinden zich in de werkmap van de taak. |
| user |
De gebruikersidentiteit waaronder StartTask wordt uitgevoerd. Als u dit weglaat, wordt de taak uitgevoerd als een niet-gebruiker met beheerdersrechten die uniek is voor de taak. |
| wait |
Of de Batch-service moet wachten tot de StartTask is voltooid (dat wil gezegd: afsluiten met afsluitcode 0) voordat taken op het rekenknooppunt worden gepland. Indien waar en starttask mislukt op een knooppunt, probeert de Batch-service de StartTask opnieuw uit te voeren tot het maximumaantal nieuwe pogingen (maxTaskRetryCount). Als de taak na alle nieuwe pogingen nog steeds niet is voltooid, markeert de Batch-service het knooppunt onbruikbaar en plant deze niet. Deze voorwaarde kan worden gedetecteerd via de details van de status en foutgegevens van het rekenknooppunt. Als dit onwaar is, wacht de Batch-service niet tot de StartTask is voltooid. In dit geval kunnen andere taken worden uitgevoerd op het rekenknooppunt terwijl de StartTask nog steeds wordt uitgevoerd; en zelfs als de StartTask mislukt, worden nieuwe taken nog steeds gepland op het rekenknooppunt. De standaardwaarde is waar. |
Eigenschapdetails
commandLine
De opdrachtregel van de StartTask. 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
containerSettings
De instellingen voor de container waaronder de StartTask 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 omgevingsvariabele-instellingen voor de StartTask.
environmentSettings?: EnvironmentSetting[]
Waarde van eigenschap
maxTaskRetryCount
Het maximum aantal keren dat de taak opnieuw kan worden geprobeerd. De Batch-service probeert een taak opnieuw uit te voeren als de afsluitcode niet-nul is. Houd er rekening mee dat deze waarde specifiek het aantal nieuwe pogingen bepaalt. De Batch-service probeert de taak eenmaal uit en probeert vervolgens opnieuw tot deze limiet. Als het maximumaantal nieuwe pogingen bijvoorbeeld 3 is, probeert Batch de taak maximaal 4 keer (één eerste poging en drie nieuwe pogingen). Als het maximumaantal nieuwe pogingen 0 is, voert de Batch-service de taak niet opnieuw uit. Als het maximumaantal nieuwe pogingen -1 is, probeert de Batch-service de taak opnieuw zonder limiet, maar dit wordt niet aanbevolen voor een begintaak of een andere taak. De standaardwaarde is 0 (geen nieuwe pogingen).
maxTaskRetryCount?: number
Waarde van eigenschap
number
resourceFiles
Een lijst met bestanden die de Batch-service naar het rekenknooppunt downloadt voordat u de opdrachtregel uitvoert. 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. Bestanden die onder dit element worden vermeld, bevinden zich in de werkmap van de taak.
resourceFiles?: ResourceFile[]
Waarde van eigenschap
userIdentity
De gebruikersidentiteit waaronder StartTask wordt uitgevoerd. Als u dit weglaat, wordt de taak uitgevoerd als een niet-gebruiker met beheerdersrechten die uniek is voor de taak.
userIdentity?: UserIdentity
Waarde van eigenschap
waitForSuccess
Of de Batch-service moet wachten tot de StartTask is voltooid (dat wil gezegd: afsluiten met afsluitcode 0) voordat taken op het rekenknooppunt worden gepland. Indien waar en starttask mislukt op een knooppunt, probeert de Batch-service de StartTask opnieuw uit te voeren tot het maximumaantal nieuwe pogingen (maxTaskRetryCount). Als de taak na alle nieuwe pogingen nog steeds niet is voltooid, markeert de Batch-service het knooppunt onbruikbaar en plant deze niet. Deze voorwaarde kan worden gedetecteerd via de details van de status en foutgegevens van het rekenknooppunt. Als dit onwaar is, wacht de Batch-service niet tot de StartTask is voltooid. In dit geval kunnen andere taken worden uitgevoerd op het rekenknooppunt terwijl de StartTask nog steeds wordt uitgevoerd; en zelfs als de StartTask mislukt, worden nieuwe taken nog steeds gepland op het rekenknooppunt. De standaardwaarde is waar.
waitForSuccess?: boolean
Waarde van eigenschap
boolean