StartTask Classe
Tâche exécutée lorsqu’un nœud joint un pool dans le service Azure Batch, ou lorsque le nœud de calcul est redémarré ou réinitialisé.
Batch effectue une nouvelle tentative de tâches lorsqu’une opération de récupération est déclenchée sur un nœud. Les exemples d’opérations de récupération incluent (mais ne sont pas limités à) lorsqu’un nœud non sain est redémarré ou qu’un nœud de calcul a disparu en raison d’une défaillance de l’hôte. Les nouvelles tentatives dues aux opérations de récupération sont indépendantes de et ne sont pas comptabilisées dans maxTaskRetryCount. Même si maxTaskRetryCount est 0, une nouvelle tentative interne en raison d’une opération de récupération peut se produire. Pour cette raison, toutes les tâches doivent être idempotentes. Cela signifie que les tâches doivent tolérer l’interruption et le redémarrage sans provoquer d’altération ou de doublon des données. La meilleure pratique pour les tâches de longue durée consiste à utiliser une forme de point de contrôle. Dans certains cas, starttask peut être réexécuter même si le nœud de calcul n’a pas été redémarré. Une attention particulière doit être prise pour éviter les tâches StartTasks qui créent un processus d’interruption ou installent/lancent des services à partir du répertoire de travail StartTask, car cela empêchera Batch de pouvoir réexécuter starttask.
Tous les paramètres requis doivent être renseignés pour pouvoir être envoyés à Azure.
- Héritage
-
StartTask
Constructeur
StartTask(*, command_line: str, container_settings=None, resource_files=None, environment_settings=None, user_identity=None, max_task_retry_count: int = None, wait_for_success: bool = None, **kwargs)
Paramètres
- command_line
- str
Obligatoire. La ligne de commande ne s’exécute pas sous un interpréteur de commandes et ne peut donc pas tirer parti des fonctionnalités de l’interpréteur de commandes telles que l’expansion des variables d’environnement. Si vous souhaitez tirer parti de ces fonctionnalités, vous devez appeler l’interpréteur de commandes dans la ligne de commande, par exemple en utilisant « cmd /c MyCommand » dans Windows ou « /bin/sh -c MyCommand » dans Linux. Si la ligne de commande fait référence à des chemins de fichier, elle doit utiliser un chemin relatif (relatif au répertoire de travail De la tâche) ou utiliser la variable d’environnement fournie par Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).
- container_settings
- TaskContainerSettings
Paramètres du conteneur sous lequel starttask s’exécute. Lorsque cela est spécifié, tous les répertoires sous le AZ_BATCH_NODE_ROOT_DIR (la racine des répertoires Azure Batch sur le nœud) sont mappés dans le conteneur, toutes les variables d’environnement de tâche sont mappées dans le conteneur et la ligne de commande Tâche est exécutée dans le conteneur. Les fichiers produits dans le conteneur en dehors de AZ_BATCH_NODE_ROOT_DIR peuvent ne pas être répercutés sur le disque hôte, ce qui signifie que les API de fichiers Batch ne pourront pas accéder à ces fichiers.
- resource_files
- list[ResourceFile]
Les fichiers répertoriés sous cet élément se trouvent dans le répertoire de travail de la tâche.
- environment_settings
- list[EnvironmentSetting]
- user_identity
- UserIdentity
Identité de l’utilisateur sous laquelle starttask s’exécute. Si elle est omise, la tâche s’exécute en tant qu’utilisateur non administratif unique à la tâche.
- max_task_retry_count
- int
Nombre maximal de nouvelles tentatives de la tâche. Le service Batch retente une tâche si son code de sortie est différent de zéro. Notez que cette valeur contrôle spécifiquement le nombre de nouvelles tentatives. Le service Batch essaiera la tâche une fois, puis peut réessayer jusqu’à cette limite. Par exemple, si le nombre maximal de nouvelles tentatives est de 3, Batch tente la tâche jusqu’à 4 fois (une tentative initiale et 3 tentatives). Si le nombre maximal de nouvelles tentatives est 0, le service Batch ne réessaye pas la tâche. Si le nombre maximal de nouvelles tentatives est -1, le service Batch retente la tâche sans limite. Toutefois, cela n’est pas recommandé pour une tâche de démarrage ou une tâche. La valeur par défaut est 0 (aucune nouvelle tentative).
- wait_for_success
- bool
Indique si le service Batch doit attendre que starttask se termine correctement (autrement dit, pour quitter avec le code de sortie 0) avant de planifier des tâches sur le nœud de calcul. Si la valeur est true et que startTask échoue sur un nœud, le service Batch retente starttask jusqu’à son nombre maximal de nouvelles tentatives (maxTaskRetryCount). Si la tâche n’est toujours pas terminée après toutes les nouvelles tentatives, le service Batch marque le nœud inutilisable et ne planifie pas les tâches. Cette condition peut être détectée via les détails de l’état du nœud de calcul et des informations d’échec. Si la valeur est false, le service Batch n’attend pas que starttask se termine. Dans ce cas, d’autres tâches peuvent commencer à s’exécuter sur le nœud de calcul pendant que starttask est toujours en cours d’exécution ; et même si starttask échoue, de nouvelles tâches continueront d’être planifiées sur le nœud de calcul. La valeur par défaut est true.
Méthodes
as_dict |
Retourne un dictée qui peut être JSONify à l’aide de json.dump. L’utilisation avancée peut éventuellement utiliser un rappel comme paramètre : La clé est le nom d’attribut utilisé dans Python. Attr_desc est un dictée de métadonnées. Contient actuellement « type » avec le type msrest et « key » avec la clé encodée RestAPI. Value est la valeur actuelle dans cet objet. La chaîne retournée sera utilisée pour sérialiser la clé. Si le type de retour est une liste, cela est considéré comme un dicté de résultat hiérarchique. Consultez les trois exemples de ce fichier :
Si vous souhaitez une sérialisation XML, vous pouvez passer les kwargs is_xml=True. |
deserialize |
Analysez un str à l’aide de la syntaxe RestAPI et retournez un modèle. |
enable_additional_properties_sending | |
from_dict |
L’analyse d’un dicté à l’aide de l’extracteur de clé donné retourne un modèle. Par défaut, considérez les extracteurs de clés (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor et last_rest_key_case_insensitive_extractor) |
is_xml_model | |
serialize |
Retourne le JSON qui serait envoyé à Azure à partir de ce modèle. Il s’agit d’un alias pour as_dict(full_restapi_key_transformer, keep_readonly=False). Si vous souhaitez une sérialisation XML, vous pouvez passer les kwargs is_xml=True. |
validate |
Validez ce modèle de manière récursive et retournez une liste de ValidationError. |
as_dict
Retourne un dictée qui peut être JSONify à l’aide de json.dump.
L’utilisation avancée peut éventuellement utiliser un rappel comme paramètre :
La clé est le nom d’attribut utilisé dans Python. Attr_desc est un dictée de métadonnées. Contient actuellement « type » avec le type msrest et « key » avec la clé encodée RestAPI. Value est la valeur actuelle dans cet objet.
La chaîne retournée sera utilisée pour sérialiser la clé. Si le type de retour est une liste, cela est considéré comme un dicté de résultat hiérarchique.
Consultez les trois exemples de ce fichier :
attribute_transformer
full_restapi_key_transformer
last_restapi_key_transformer
Si vous souhaitez une sérialisation XML, vous pouvez passer les kwargs is_xml=True.
as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)
Paramètres
- key_transformer
- <xref:function>
Fonction de transformateur de clé.
- keep_readonly
Retours
Objet compatible JSON de dict
Type de retour
deserialize
Analysez un str à l’aide de la syntaxe RestAPI et retournez un modèle.
deserialize(data, content_type=None)
Paramètres
Retours
Une instance de ce modèle
Exceptions
enable_additional_properties_sending
enable_additional_properties_sending()
from_dict
L’analyse d’un dicté à l’aide de l’extracteur de clé donné retourne un modèle.
Par défaut, considérez les extracteurs de clés (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor et last_rest_key_case_insensitive_extractor)
from_dict(data, key_extractors=None, content_type=None)
Paramètres
- key_extractors
Retours
Une instance de ce modèle
Exceptions
is_xml_model
is_xml_model()
serialize
Retourne le JSON qui serait envoyé à Azure à partir de ce modèle.
Il s’agit d’un alias pour as_dict(full_restapi_key_transformer, keep_readonly=False).
Si vous souhaitez une sérialisation XML, vous pouvez passer les kwargs is_xml=True.
serialize(keep_readonly=False, **kwargs)
Paramètres
Retours
Objet compatible JSON de dict
Type de retour
validate
Validez ce modèle de manière récursive et retournez une liste de ValidationError.
validate()
Retours
Liste des erreurs de validation
Type de retour
Azure SDK for Python