BatchStartTask interface
Batch volverá a intentar tareas cuando se desencadene una operación de recuperación en un nodo. Algunos ejemplos de operaciones de recuperación son (pero no están limitados a) cuando se reinicia un nodo incorrecto o un nodo de proceso desaparece debido a un error de host. Los reintentos debido a las operaciones de recuperación son independientes de y no se cuentan con maxTaskRetryCount. Incluso si maxTaskRetryCount es 0, puede producirse un reintento interno debido a una operación de recuperación. Por este motivo, todas las tareas deben ser idempotentes. Esto significa que las tareas deben tolerar que se interrumpan y se reinicien sin causar daños ni datos duplicados. El procedimiento recomendado para tareas de larga duración es usar algún tipo de punto de control. En algunos casos, startTask puede volver a ejecutarse aunque no se haya reiniciado el nodo de proceso. Se debe tener especial cuidado para evitar startTasks que creen servicios de interrupción o instalación o inicio desde el directorio de trabajo startTask, ya que esto impedirá que Batch pueda volver a ejecutar StartTask.
Propiedades
| command |
Línea de comandos de StartTask. La línea de comandos no se ejecuta en un shell y, por tanto, no puede aprovechar las características del shell, como la expansión de variables de entorno. Si quieres aprovechar estas funciones, deberías invocar el shell en la línea de comandos, por ejemplo usando "cmd /c MyCommand" en Windows o "/bin/sh -c MyCommand" en Linux. Si la línea de comandos hace referencia a rutas de acceso de archivo, debe usar una ruta de acceso relativa (relativa al directorio de trabajo de la tarea) o usar la variable de entorno proporcionada por Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| container |
La configuración del contenedor bajo el cual se ejecuta la Tarea de Iniciar. Cuando esto se especifica, todos los directorios recursivamente por debajo del AZ_BATCH_NODE_ROOT_DIR (la raíz de Azure Batch directorios en el nodo) se mapean en el contenedor, todas las variables del entorno de Tarea se mapean en el contenedor y la línea de comandos de Tarea se ejecuta en el contenedor. Los archivos producidos en el contenedor fuera de AZ_BATCH_NODE_ROOT_DIR pueden no reflejarse en el disco anfitrión, lo que significa que las APIs de archivos por lotes no podrán acceder a esos archivos. |
| environment |
Lista de opciones de configuración de variables de entorno para StartTask. |
| max |
Número máximo de veces que se puede reintentar la tarea. El servicio Batch vuelve a intentar una tarea si su código de salida es distinto de cero. Tenga en cuenta que este valor controla específicamente el número de reintentos. El servicio Batch probará la tarea una vez y, a continuación, podrá volver a intentarlo hasta este límite. Por ejemplo, si el número máximo de reintentos es 3, Batch intenta la tarea hasta 4 veces (un intento inicial y 3 reintentos). Si el número máximo de reintentos es 0, el servicio Batch no vuelve a intentar la tarea. Si el número máximo de reintentos es -1, el servicio Batch reintenta la tarea sin límite, pero esto no se recomienda para una tarea de inicio ni para ninguna tarea. El valor predeterminado es 0 (sin reintentos). |
| resource |
Lista de archivos que el servicio Batch descargará en el nodo de proceso antes de ejecutar la línea de comandos. Hay un tamaño máximo para la lista de archivos de recursos. Cuando se supera el tamaño máximo, se producirá un error en la solicitud y el código de error de respuesta será RequestEntityTooLarge. Si esto ocurre, la colección de ResourceFiles debe reducirse en tamaño. Esto se puede lograr mediante archivos de .zip, paquetes de aplicación o contenedores de Docker. Los archivos enumerados en este elemento se encuentran en el directorio de trabajo de la tarea. |
| user |
La identidad de usuario bajo la cual se ejecuta la Tarea de Inicio. Si se omite, la tarea se ejecuta como un usuario no administrativo único de la tarea. |
| wait |
Si el servicio Batch debe esperar a que StartTask se complete correctamente (es decir, salir con el código de salida 0) antes de programar cualquier tarea en el nodo de proceso. Si es true y StartTask se produce un error en un nodo, el servicio Batch reintenta startTask hasta su número máximo de reintentos (maxTaskRetryCount). Si la tarea todavía no se ha completado correctamente después de todos los reintentos, el servicio Batch marca el nodo inutilizable y no programará tareas en él. Esta condición se puede detectar a través del estado del nodo de proceso y los detalles de información de error. Si es false, el servicio Batch no esperará a que se complete StartTask. En este caso, otras tareas pueden empezar a ejecutarse en el nodo de proceso mientras startTask todavía se está ejecutando; e incluso si se produce un error en StartTask, las nuevas tareas seguirán programando en el nodo de proceso. El valor predeterminado es true. |
Detalles de las propiedades
commandLine
Línea de comandos de StartTask. La línea de comandos no se ejecuta en un shell y, por tanto, no puede aprovechar las características del shell, como la expansión de variables de entorno. Si quieres aprovechar estas funciones, deberías invocar el shell en la línea de comandos, por ejemplo usando "cmd /c MyCommand" en Windows o "/bin/sh -c MyCommand" en Linux. Si la línea de comandos hace referencia a rutas de acceso de archivo, debe usar una ruta de acceso relativa (relativa al directorio de trabajo de la tarea) o usar la variable de entorno proporcionada por Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Valor de propiedad
string
containerSettings
La configuración del contenedor bajo el cual se ejecuta la Tarea de Iniciar. Cuando esto se especifica, todos los directorios recursivamente por debajo del AZ_BATCH_NODE_ROOT_DIR (la raíz de Azure Batch directorios en el nodo) se mapean en el contenedor, todas las variables del entorno de Tarea se mapean en el contenedor y la línea de comandos de Tarea se ejecuta en el contenedor. Los archivos producidos en el contenedor fuera de AZ_BATCH_NODE_ROOT_DIR pueden no reflejarse en el disco anfitrión, lo que significa que las APIs de archivos por lotes no podrán acceder a esos archivos.
containerSettings?: BatchTaskContainerSettings
Valor de propiedad
environmentSettings
Lista de opciones de configuración de variables de entorno para StartTask.
environmentSettings?: EnvironmentSetting[]
Valor de propiedad
maxTaskRetryCount
Número máximo de veces que se puede reintentar la tarea. El servicio Batch vuelve a intentar una tarea si su código de salida es distinto de cero. Tenga en cuenta que este valor controla específicamente el número de reintentos. El servicio Batch probará la tarea una vez y, a continuación, podrá volver a intentarlo hasta este límite. Por ejemplo, si el número máximo de reintentos es 3, Batch intenta la tarea hasta 4 veces (un intento inicial y 3 reintentos). Si el número máximo de reintentos es 0, el servicio Batch no vuelve a intentar la tarea. Si el número máximo de reintentos es -1, el servicio Batch reintenta la tarea sin límite, pero esto no se recomienda para una tarea de inicio ni para ninguna tarea. El valor predeterminado es 0 (sin reintentos).
maxTaskRetryCount?: number
Valor de propiedad
number
resourceFiles
Lista de archivos que el servicio Batch descargará en el nodo de proceso antes de ejecutar la línea de comandos. Hay un tamaño máximo para la lista de archivos de recursos. Cuando se supera el tamaño máximo, se producirá un error en la solicitud y el código de error de respuesta será RequestEntityTooLarge. Si esto ocurre, la colección de ResourceFiles debe reducirse en tamaño. Esto se puede lograr mediante archivos de .zip, paquetes de aplicación o contenedores de Docker. Los archivos enumerados en este elemento se encuentran en el directorio de trabajo de la tarea.
resourceFiles?: ResourceFile[]
Valor de propiedad
userIdentity
La identidad de usuario bajo la cual se ejecuta la Tarea de Inicio. Si se omite, la tarea se ejecuta como un usuario no administrativo único de la tarea.
userIdentity?: UserIdentity
Valor de propiedad
waitForSuccess
Si el servicio Batch debe esperar a que StartTask se complete correctamente (es decir, salir con el código de salida 0) antes de programar cualquier tarea en el nodo de proceso. Si es true y StartTask se produce un error en un nodo, el servicio Batch reintenta startTask hasta su número máximo de reintentos (maxTaskRetryCount). Si la tarea todavía no se ha completado correctamente después de todos los reintentos, el servicio Batch marca el nodo inutilizable y no programará tareas en él. Esta condición se puede detectar a través del estado del nodo de proceso y los detalles de información de error. Si es false, el servicio Batch no esperará a que se complete StartTask. En este caso, otras tareas pueden empezar a ejecutarse en el nodo de proceso mientras startTask todavía se está ejecutando; e incluso si se produce un error en StartTask, las nuevas tareas seguirán programando en el nodo de proceso. El valor predeterminado es true.
waitForSuccess?: boolean
Valor de propiedad
boolean