Partager via


JobManagerTask Classe

Spécifie les détails d’une tâche du Gestionnaire de travaux.

La tâche du Gestionnaire de travaux est automatiquement démarrée lors de la création du travail. Le service Batch tente de planifier la tâche du Gestionnaire de travaux avant toute autre tâche dans le travail. Lors de la réduction d’un pool, le service Batch tente de conserver les nœuds où les tâches du Gestionnaire de travaux s’exécutent aussi longtemps que possible (autrement dit, les nœuds de calcul exécutant des tâches « normales » sont supprimés avant que les nœuds de calcul n’exécutent les tâches du gestionnaire de tâches). Lorsqu’une tâche du Gestionnaire de travaux échoue et doit être redémarrée, le système tente de la planifier à la priorité la plus élevée. S’il n’y a pas de nœuds de calcul inactifs disponibles, le système peut mettre fin à l’une des tâches en cours d’exécution dans le pool et la renvoyer à la file d’attente afin de faire de la place pour que la tâche du Gestionnaire de travaux redémarre. Notez qu’une tâche du Gestionnaire de travaux dans un travail n’a pas priorité sur les tâches d’autres travaux. Parmi les travaux, seules les priorités au niveau du travail sont observées. Par exemple, si un gestionnaire de travaux d’une priorité 0 doit être redémarré, il ne déplace pas les tâches d’un travail de priorité 1. 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 (sans s’y limiter) lorsqu’un nœud défectueux 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.

Tous les paramètres requis doivent être renseignés pour pouvoir être envoyés à Azure.

Héritage
JobManagerTask

Constructeur

JobManagerTask(*, id: str, command_line: str, display_name: str = None, container_settings=None, resource_files=None, output_files=None, environment_settings=None, constraints=None, required_slots: int = None, kill_job_on_completion: bool = None, user_identity=None, run_exclusive: bool = None, application_package_references=None, authentication_token_settings=None, allow_low_priority_node: bool = None, **kwargs)

Paramètres

id
str
Obligatoire

Obligatoire. L’ID peut contenir n’importe quelle combinaison de caractères alphanumériques, y compris des traits d’union et des traits de soulignement, et ne peut pas contenir plus de 64 caractères.

display_name
str
Obligatoire

Il n’a pas besoin d’être unique et peut contenir des caractères Unicode d’une longueur maximale de 1 024.

command_line
str
Obligatoire

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
Obligatoire

Paramètres du conteneur sous lequel la tâche du Gestionnaire de travaux s’exécute. Si le pool qui exécutera cette tâche a containerConfiguration set, celui-ci doit également être défini. Si le pool qui exécutera cette tâche n’a pas de conteneurConfiguration défini, cela ne doit pas être défini. 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]
Obligatoire

Les fichiers répertoriés sous cet élément se trouvent dans le répertoire de travail de la tâche. Il existe une taille maximale pour la liste des fichiers de ressources. Lorsque la taille maximale est dépassée, la demande échoue et le code d’erreur de réponse est RequestEntityTooLarge. Si cela se produit, la collection de ResourceFiles doit être réduite en taille. Vous pouvez y parvenir à l’aide de fichiers .zip, de packages d’application ou de conteneurs Docker.

output_files
list[OutputFile]
Obligatoire

Pour les tâches multi-instance, les fichiers sont uniquement chargés à partir du nœud de calcul sur lequel la tâche principale est exécutée.

environment_settings
list[EnvironmentSetting]
Obligatoire
constraints
TaskConstraints
Obligatoire

Contraintes qui s’appliquent à la tâche du Gestionnaire de travaux.

required_slots
int
Obligatoire

Nombre d’emplacements de planification dont la tâche a besoin pour s’exécuter. La valeur par défaut est 1. Une tâche peut être planifiée pour s’exécuter sur un nœud de calcul uniquement si le nœud dispose de suffisamment d’emplacements de planification disponibles. Pour les tâches multi-instance, cette propriété n’est pas prise en charge et ne doit pas être spécifiée.

kill_job_on_completion
bool
Obligatoire

Indique si l’achèvement de la tâche du Gestionnaire de travaux signifie l’achèvement de l’ensemble du travail. Si la valeur est true, lorsque la tâche du gestionnaire de travaux se termine, le service Batch marque le travail comme terminé. Si des tâches sont toujours en cours d’exécution (autres que la mise en production du travail), ces tâches sont arrêtées. Si la valeur est false, l’achèvement de la tâche du Gestionnaire de travaux n’affecte pas le status de travail. Dans ce cas, vous devez utiliser l’attribut onAllTasksComplete pour arrêter le travail, ou demander à un client ou à un utilisateur d’arrêter le travail explicitement. Par exemple, le Gestionnaire de travaux crée un ensemble de tâches, mais n’a plus de rôle dans leur exécution. La valeur par défaut est true. Si vous utilisez les attributs onAllTasksComplete et onTaskFailure pour contrôler la durée de vie du travail, et que vous utilisez la tâche du Gestionnaire de travaux uniquement pour créer les tâches du travail (et non pour surveiller la progression), il est important de définir killJobOnCompletion sur false.

user_identity
UserIdentity
Obligatoire

Identité de l’utilisateur sous laquelle la tâche du Gestionnaire de travaux s’exécute. Si elle est omise, la tâche s’exécute en tant qu’utilisateur non administratif unique à la tâche.

run_exclusive
bool
Obligatoire

Indique si la tâche du Gestionnaire de travaux nécessite une utilisation exclusive du nœud de calcul sur lequel elle s’exécute. Si la valeur est true, aucune autre tâche ne s’exécutera sur le même nœud tant que le Gestionnaire de travaux est en cours d’exécution. Si la valeur est false, d’autres tâches peuvent s’exécuter simultanément avec le Gestionnaire de travaux sur un nœud de calcul. La tâche du gestionnaire de travaux est normalement comptabilisée par rapport à la limite de tâches simultanées du nœud de calcul. Cela n’est donc pertinent que si le nœud de calcul autorise plusieurs tâches simultanées. La valeur par défaut est true.

application_package_references
list[ApplicationPackageReference]
Obligatoire

Les packages d’application sont téléchargés et déployés dans un répertoire partagé, et non dans le répertoire de travail Task. Par conséquent, si un package d’application référencé se trouve déjà sur le nœud de calcul et est à jour, il n’est pas re-téléchargé ; la copie existante sur le nœud de calcul est utilisée. Si un package d’application référencé ne peut pas être installé, par exemple parce que le package a été supprimé ou parce que le téléchargement a échoué, la tâche échoue.

authentication_token_settings
AuthenticationTokenSettings
Obligatoire

Paramètres d’un jeton d’authentification que la tâche peut utiliser pour effectuer des opérations de service Batch. Si cette propriété est définie, le service Batch fournit à la tâche un jeton d’authentification qui peut être utilisé pour authentifier les opérations du service Batch sans nécessiter de clé d’accès au compte. Le jeton est fourni via la variable d’environnement AZ_BATCH_AUTHENTICATION_TOKEN. Les opérations que la tâche peut effectuer à l’aide du jeton dépendent des paramètres. Par exemple, une tâche peut demander des autorisations de travail afin d’ajouter d’autres tâches au travail, ou case activée la status du travail ou d’autres tâches sous le travail.

allow_low_priority_node
bool
Obligatoire

Indique si la tâche du gestionnaire de travaux peut s’exécuter sur un nœud de calcul spot/basse priorité. 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 :

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

deserialize

Analysez une str à l’aide de la syntaxe RestAPI et retournez un modèle.

enable_additional_properties_sending
from_dict

Analyser une 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 la 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
valeur par défaut: True

Retours

Objet compatible JSON de dict

Type de retour

deserialize

Analysez une str à l’aide de la syntaxe RestAPI et retournez un modèle.

deserialize(data, content_type=None)

Paramètres

data
str
Obligatoire

Str utilisant la structure RestAPI. JSON par défaut.

content_type
str
valeur par défaut: None

JSON par défaut, définissez application/xml si XML.

Retours

Une instance de ce modèle

Exceptions

DeserializationError if something went wrong

enable_additional_properties_sending

enable_additional_properties_sending()

from_dict

Analyser une 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

data
dict
Obligatoire

dict utilisant la structure RestAPI

content_type
str
valeur par défaut: None

JSON par défaut, définissez application/xml si XML.

key_extractors
valeur par défaut: None

Retours

Une instance de ce modèle

Exceptions

DeserializationError if something went wrong

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 la sérialisation XML, vous pouvez passer les kwargs is_xml=True.

serialize(keep_readonly=False, **kwargs)

Paramètres

keep_readonly
bool
valeur par défaut: False

Si vous souhaitez sérialiser les attributs readonly

Retours

Objet compatible JSON 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