En este documento, se describe cómo limitar los tiempos de ejecución de las tareas y los ejecutables estableciendo tiempos de espera.
Un tiempo de espera especifica la cantidad de tiempo que se permite una tarea o un ejecutable. se ejecuten. Los lotes no permiten que los trabajos se ejecuten durante más de 14 días y no establece tiempos de espera predeterminados para tareas individuales y ejecutables. Por lo tanto, una tarea o un elemento ejecutable individuales pueden ejecutarse hasta 14 días antes de que se produzca una falla automática. Pero, si tus tareas y ejecutables no están para ejecutarse durante tanto tiempo, esta configuración puede generar costos inesperados y retrasos. Para evitar tiempos de ejecución excesivos, puedes establecer tiempos de espera para las tareas y ejecutables.
Antes de comenzar
- Si nunca usaste Batch, revisa Comienza a usar Batch y habilitar Batch completando el requisitos previos para los proyectos y usuarios.
-
A fin de obtener los permisos que necesitas para crear un trabajo, solicita a tu administrador que te otorgue el los siguientes roles de IAM:
-
Editor de trabajos por lotes (
roles/batch.jobsEditor
) en el proyecto -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la cuenta de servicio del trabajo, que, de forma predeterminada, es la cuenta de servicio predeterminada de Compute Engine
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
-
Editor de trabajos por lotes (
Establece tiempos de espera
Puedes establecer tiempos de espera para ejecutables, tareas o ambos. Es el tiempo de espera de un “runnable” especifica el tiempo de ejecución máximo de ese ejecutable. El tiempo de espera de una tarea especifica su tiempo de ejecución máximo, que es la suma de todos los tiempos de ejecución individuales de sus ejecutables. Por ejemplo, si una tarea tiene 3 ejecutables que se ejecutan al mismo tiempo durante 1 minuto, entonces el tiempo de ejecución de la tarea es de 3 minutos, no de 1 minuto.
Si configuras tiempos de espera superpuestos, como un tiempo de espera la tarea del ejecutable, solo se debe exceder un tiempo de espera para activar fallas automáticas. Por ejemplo, supongamos que configuras el tiempo de espera de una tarea en 60 segundos y el tiempo de espera de cada uno de los ejecutables de esa tarea para 120 segundos. Luego, esta tarea de ejemplo y todos sus ejecutables fallan cuando el de los tiempos de ejecución de sus ejecutables supera los 60 segundos, es imposible activar tiempos de espera de 120 segundos.
Para elegir el tiempo de espera adecuado que se debe configurar para las tareas y los ejecutables de tu trabajo, haz lo siguiente: analizar los registros de trabajos similares que se ejecutaron previamente para determinar el tiempo de ejecución típico de las tareas y ejecutables para cargas de trabajo similares.
Establece el tiempo de espera para una tarea
Usa Google Cloud CLI o la API de REST para
crear un trabajo
incluye el
Campo maxRunDuration
En el objeto taskSpec
del archivo JSON, haz lo siguiente:
{
"taskGroups": [
{
"taskSpec": {
...
"maxRunDuration": "TIMEOUT"
}
}
]
}
Reemplaza TIMEOUT
por la cantidad máxima de segundos.
fracciones del video en las que quieres
permitir que se ejecute la tarea. Por ejemplo, 255s
Un trabajo que establece un tiempo de espera de 255 segundos para una tarea tendrá una configuración JSON. similar al siguiente:
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks."
}
}
],
"maxRunDuration": "255s"
},
"taskCount": 3
}
],
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Si se excede el tiempo de espera de una tarea, esta falla automáticamente y el tiempo de espera excedido se indica con el código de salida 50005
en los eventos y registros de estado del trabajo. Para obtener más información sobre los tiempos de espera excedidos, consulta la
documentación de solución de problemas del código de salida 50005.
Establecer el tiempo de espera para un recurso
Usa Google Cloud CLI o la API de REST para
crear un trabajo
incluye el
Campo timeout
En el objeto runnable
del archivo JSON, haz lo siguiente:
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
...
"timeout": "TIMEOUT"
}
]
}
}
]
}
Reemplaza TIMEOUT
por la cantidad máxima de segundos.
y fraccionarios en las que desea permitir
que se ejecute el ejecutable. Por ejemplo, 3.5s
Un trabajo que establezca un tiempo de espera de 3.5 segundos para un ejecutable tendrá un archivo JSON de configuración de Terraform similar al siguiente:
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks."
},
"timeout": "3.5s"
}
]
},
"taskCount": 3
}
],
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Si se supera el tiempo de espera de un ejecutable, este falla automáticamente y
el tiempo de espera excedido se indica con el código de salida 50005
en la
de estado de Terraform y registros. Para obtener más información sobre los tiempos de espera excedidos, consulta la
documentación de solución de problemas del código de salida 50005.
¿Qué sigue?
- Si tienes problemas para crear o ejecutar una tarea, consulta Solución de problemas.
- Ver trabajos y tareas.
- Obtén más información sobre las opciones de creación de trabajos.
- Obtén más información sobre cómo analizar un trabajo con registros.