JobPreparationTask Klas
Een taakvoorbereidingstaak die moet worden uitgevoerd vóór taken van de taak op een bepaald rekenknooppunt.
U kunt Taakvoorbereiding gebruiken om een knooppunt voor te bereiden voor het uitvoeren van taken voor de taak. Activiteiten die vaak worden uitgevoerd in Taakvoorbereiding zijn onder andere: het downloaden van algemene resourcebestanden die worden gebruikt door alle taken in de taak. De taak voor taakvoorbereiding kan deze algemene bronbestanden downloaden naar de gedeelde locatie op het knooppunt. (AZ_BATCH_NODE_ROOT_DIRshared) of het starten van een lokale service op het knooppunt, zodat alle taken van die taak ermee kunnen communiceren. Als de taakvoorbereidingstaak mislukt (het aantal nieuwe pogingen wordt uitgeput voordat u afsluit met afsluitcode 0), voert Batch geen taken van deze taak uit op het knooppunt. Het rekenknooppunt komt niet in aanmerking voor het uitvoeren van taken van deze taak totdat de installatiekopie opnieuw wordt ingesteld. Het rekenknooppunt blijft actief en kan worden gebruikt voor andere taken. De taakvoorbereidingstaak kan meerdere keren op hetzelfde knooppunt worden uitgevoerd. Daarom moet u de taakvoorbereidingstaak schrijven om de heruitvoering af te handelen. Als het knooppunt opnieuw wordt opgestart, wordt de taak voor taakvoorbereiding opnieuw uitgevoerd op het rekenknooppunt voordat een andere taak van de taak wordt gepland, als rerunOnNodeRebootAfterSuccess waar is of als de taakvoorbereidingstaak niet eerder is voltooid. Als de installatiekopie van het knooppunt wordt hersteld, wordt de taak voor taakvoorbereiding opnieuw uitgevoerd voordat een taak van de taak wordt gepland. 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 de maxTaskRetryCount. Zelfs als de maxTaskRetryCount 0 is, kan er een interne nieuwe poging vanwege een herstelbewerking plaatsvinden. Daarom moeten alle taken idempotent zijn. Dit betekent dat taken moeten worden onderbroken en opnieuw worden opgestart zonder beschadiging of dubbele gegevens te veroorzaken. De best practice voor langlopende taken is om een vorm van controlepunten te gebruiken.
Alle vereiste parameters moeten worden ingevuld om naar Azure te kunnen worden verzonden.
- Overname
-
JobPreparationTask
Constructor
JobPreparationTask(*, command_line: str, id: str = None, container_settings=None, resource_files=None, environment_settings=None, constraints=None, wait_for_success: bool = None, user_identity=None, rerun_on_node_reboot_after_success: bool = None, **kwargs)
Parameters
- id
- str
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 toe van 'jobpreparation'. Geen enkele andere taak in de taak kan dezelfde id hebben als de taak voor het voorbereiden van de taak. Als u probeert een taak met dezelfde id te verzenden, weigert de Batch-service de aanvraag met foutcode TaskIdSameAsJobPreparationTask; Als u de REST API rechtstreeks aanroept, is de HTTP-statuscode 409 (conflict).
- command_line
- str
Vereist. 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 in de opdrachtregel aanroepen, bijvoorbeeld met 'cmd /c MyCommand' in Windows of '/bin/sh -c MyCommand' in Linux. Als de opdrachtregel naar bestandspaden verwijst, moet deze een relatief pad gebruiken (ten opzichte van de taakwerkmap) of de door Batch opgegeven omgevingsvariabele () gebruiken.https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables
- container_settings
- TaskContainerSettings
De instellingen voor de container waaronder de taakvoorbereidingstaak 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 taakomgevingsvariabelen toegewezen aan de container en wordt de taakopdrachtregel uitgevoerd in de container. Bestanden die zijn geproduceerd in de container buiten AZ_BATCH_NODE_ROOT_DIR worden mogelijk niet weergegeven op de hostschijf, wat betekent dat Api's van Batch-bestanden geen toegang hebben tot deze bestanden.
- resource_files
- list[ResourceFile]
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 gebeurt, moet de verzameling ResourceFiles worden verkleind. Dit kan worden bereikt met behulp van .zip-bestanden, toepassingspakketten of Docker-containers.
- environment_settings
- list[EnvironmentSetting]
- constraints
- TaskConstraints
Beperkingen die van toepassing zijn op de taakvoorbereidingstaak.
- wait_for_success
- bool
Of de Batch-service moet wachten totdat de taakvoorbereidingstaak is voltooid voordat andere taken van de taak op het rekenknooppunt worden gepland. Een taak voor taakvoorbereiding is voltooid als deze wordt afgesloten met afsluitcode 0. Als waar is en de taakvoorbereidingstaak mislukt op een knooppunt, probeert de Batch-service de taak voor taakvoorbereiding opnieuw tot het maximumaantal nieuwe pogingen (zoals opgegeven in het element beperkingen). 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. Indien onwaar, wacht de Batch-service niet totdat de taakvoorbereidingstaak is voltooid. In dit geval kunnen andere taken van de taak worden uitgevoerd op het rekenknooppunt terwijl de taak voor taakvoorbereiding nog steeds wordt uitgevoerd; en zelfs als de taakvoorbereiding mislukt, worden er nog steeds nieuwe taken gepland op het rekenknooppunt. De standaardwaarde is waar.
- user_identity
- UserIdentity
De gebruikersidentiteit waaronder de taak voor het voorbereiden van de taak wordt uitgevoerd. Als u dit weglaat, wordt de taak uitgevoerd als een gebruiker zonder beheerdersrechten die uniek is voor de taak op Windows-rekenknooppunten, of als een gebruiker zonder beheerdersrechten die uniek is voor de pool op Linux-rekenknooppunten.
- rerun_on_node_reboot_after_success
- bool
Of de Batch-service de taakvoorbereidingstaak opnieuw moet uitvoeren nadat een rekenknooppunt opnieuw is opgestart. De taak voor taakvoorbereiding wordt altijd opnieuw uitgevoerd als er een nieuwe installatiekopie van een rekenknooppunt wordt gemaakt of als de taakvoorbereidingstaak niet is voltooid (bijvoorbeeld omdat de taak opnieuw is opgestart terwijl de taak werd uitgevoerd). Daarom moet u altijd een taak voor taakvoorbereiding schrijven om idempotent te zijn en om correct te werken als deze meerdere keren wordt uitgevoerd. De standaardwaarde is waar.
Methoden
as_dict |
Retourneer een dict die JSONify kan zijn met behulp van json.dump. Geavanceerd gebruik kan eventueel een callback gebruiken als parameter: Sleutel is de kenmerknaam die wordt gebruikt in Python. Attr_desc is een dictaat van metagegevens. Bevat momenteel 'type' met het msrest-type en 'key' met de RestAPI-gecodeerde sleutel. Waarde is de huidige waarde in dit object. De geretourneerde tekenreeks wordt gebruikt om de sleutel te serialiseren. Als het retourtype een lijst is, wordt dit beschouwd als hiërarchische resultaatdicteerfunctie. Bekijk de drie voorbeelden in dit bestand:
Als u XML-serialisatie wilt, kunt u de kwargs-is_xml=True doorgeven. |
deserialize |
Parseert een str met behulp van de RestAPI-syntaxis en retourneer een model. |
enable_additional_properties_sending | |
from_dict |
Een dicteren met behulp van de opgegeven sleutelextractor retourneert een model. Houd standaard rekening met sleutelextracties (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor en last_rest_key_case_insensitive_extractor) |
is_xml_model | |
serialize |
Retourneert de JSON die vanuit dit model naar Azure wordt verzonden. Dit is een alias voor as_dict(full_restapi_key_transformer, keep_readonly=False). Als u XML-serialisatie wilt, kunt u de kwargs is_xml=True doorgeven. |
validate |
Valideer dit model recursief en retourneer een lijst met ValidationError. |
as_dict
Retourneer een dict die JSONify kan zijn met behulp van json.dump.
Geavanceerd gebruik kan eventueel een callback gebruiken als parameter:
Sleutel is de kenmerknaam die wordt gebruikt in Python. Attr_desc is een dictaat van metagegevens. Bevat momenteel 'type' met het msrest-type en 'key' met de RestAPI-gecodeerde sleutel. Waarde is de huidige waarde in dit object.
De geretourneerde tekenreeks wordt gebruikt om de sleutel te serialiseren. Als het retourtype een lijst is, wordt dit beschouwd als hiërarchische resultaatdicteerfunctie.
Bekijk de drie voorbeelden in dit bestand:
attribute_transformer
full_restapi_key_transformer
last_restapi_key_transformer
Als u XML-serialisatie wilt, kunt u de kwargs-is_xml=True doorgeven.
as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)
Parameters
- key_transformer
- <xref:function>
Een sleuteltransformatorfunctie.
- keep_readonly
Retouren
Een dict JSON-compatibel object
Retourtype
deserialize
Parseert een str met behulp van de RestAPI-syntaxis en retourneer een model.
deserialize(data, content_type=None)
Parameters
Retouren
Een exemplaar van dit model
Uitzonderingen
enable_additional_properties_sending
enable_additional_properties_sending()
from_dict
Een dicteren met behulp van de opgegeven sleutelextractor retourneert een model.
Houd standaard rekening met sleutelextracties (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor en last_rest_key_case_insensitive_extractor)
from_dict(data, key_extractors=None, content_type=None)
Parameters
- key_extractors
Retouren
Een exemplaar van dit model
Uitzonderingen
is_xml_model
is_xml_model()
serialize
Retourneert de JSON die vanuit dit model naar Azure wordt verzonden.
Dit is een alias voor as_dict(full_restapi_key_transformer, keep_readonly=False).
Als u XML-serialisatie wilt, kunt u de kwargs is_xml=True doorgeven.
serialize(keep_readonly=False, **kwargs)
Parameters
Retouren
Een dict JSON-compatibel object
Retourtype
validate
Valideer dit model recursief en retourneer een lijst met ValidationError.
validate()
Retouren
Een lijst met validatiefouten
Retourtype
Azure SDK for Python
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor