StartTask interface
Batch réessaye les 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 en raison d’opérations de récupération sont indépendantes et ne sont pas comptabilisées par rapport au maxTaskRetryCount. Même si maxTaskRetryCount est 0, une nouvelle tentative interne en raison d’une opération de récupération peut se produire. En raison de cela, 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 longues 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é. Vous devez veiller à éviter les tâches StartTask qui créent un processus d’arrêt ou installent/lancent des services à partir du répertoire de travail StartTask, car cela empêche Batch de pouvoir réexécuter l’objet StartTask.
Propriétés
| command |
Ligne de commande de StartTask. 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’extension de variable 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 (par rapport au répertoire de travail de 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 |
Paramètres du conteneur sous lequel StartTask s’exécute. Lorsque cela est spécifié, tous les répertoires sont récursifs 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 au conteneur et la ligne de commande Task 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 fichier Batch ne pourront pas accéder à ces fichiers. |
| environment |
Liste des paramètres de variable d’environnement pour StartTask. |
| max |
Nombre maximal de nouvelles tentatives de la tâche. Le service Batch retente une tâche si son code de sortie n’est pas 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 seule fois et peut ensuite réessayer jusqu’à cette limite. Par exemple, si le nombre maximal de nouvelles tentatives est égal à 3, Batch tente la tâche jusqu’à 4 fois (une tentative initiale et 3 nouvelles tentatives). Si le nombre maximal de nouvelles tentatives est égal à 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. |
| resource |
Liste des fichiers que le service Batch télécharge sur le nœud de calcul avant d’exécuter la ligne de commande. Il existe une taille maximale pour la liste des fichiers de ressources. Lorsque la taille maximale est dépassée, la requête é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. Pour ce faire, vous pouvez utiliser des fichiers .zip, des packages d’application ou des conteneurs Docker. Les fichiers répertoriés sous cet élément se trouvent dans le répertoire de travail de la tâche. |
| user |
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. |
| wait |
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 la tâche 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 la fin de l’opération StartTask. Dans ce cas, d’autres tâches peuvent commencer à s’exécuter sur le nœud de calcul pendant l’exécution de StartTask ; et même si StartTask échoue, les nouvelles tâches continuent d’être planifiées sur le nœud de calcul. La valeur par défaut est true. |
Détails de la propriété
commandLine
Ligne de commande de StartTask. 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’extension de variable 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 (par rapport au répertoire de travail de tâche) ou utiliser la variable d’environnement fournie par Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Valeur de propriété
string
containerSettings
Paramètres du conteneur sous lequel StartTask s’exécute. Lorsque cela est spécifié, tous les répertoires sont récursifs 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 au conteneur et la ligne de commande Task 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 fichier Batch ne pourront pas accéder à ces fichiers.
containerSettings?: TaskContainerSettings
Valeur de propriété
environmentSettings
Liste des paramètres de variable d’environnement pour StartTask.
environmentSettings?: EnvironmentSetting[]
Valeur de propriété
maxTaskRetryCount
Nombre maximal de nouvelles tentatives de la tâche. Le service Batch retente une tâche si son code de sortie n’est pas 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 seule fois et peut ensuite réessayer jusqu’à cette limite. Par exemple, si le nombre maximal de nouvelles tentatives est égal à 3, Batch tente la tâche jusqu’à 4 fois (une tentative initiale et 3 nouvelles tentatives). Si le nombre maximal de nouvelles tentatives est égal à 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.
maxTaskRetryCount?: number
Valeur de propriété
number
resourceFiles
Liste des fichiers que le service Batch télécharge sur le nœud de calcul avant d’exécuter la ligne de commande. Il existe une taille maximale pour la liste des fichiers de ressources. Lorsque la taille maximale est dépassée, la requête é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. Pour ce faire, vous pouvez utiliser des fichiers .zip, des packages d’application ou des conteneurs Docker. Les fichiers répertoriés sous cet élément se trouvent dans le répertoire de travail de la tâche.
resourceFiles?: ResourceFile[]
Valeur de propriété
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.
userIdentity?: UserIdentity
Valeur de propriété
waitForSuccess
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 la tâche 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 la fin de l’opération StartTask. Dans ce cas, d’autres tâches peuvent commencer à s’exécuter sur le nœud de calcul pendant l’exécution de StartTask ; et même si StartTask échoue, les nouvelles tâches continuent d’être planifiées sur le nœud de calcul. La valeur par défaut est true.
waitForSuccess?: boolean
Valeur de propriété
boolean