Ejecución y colocación en cola de trabajos
Acerca de la cola de trabajos Schematics
Cuando un usuario ejecuta una operación Schematics, los trabajos se ponen en cola en una cola de servicio compartido. Un trabajo permanece en la cola hasta que los trabajadores están disponibles en las regiones de destino para ejecutar el trabajo. Las políticas de planificación se aplican a los trabajos para garantizar que el servicio esté disponible de forma equitativa para todos los usuarios.
Funcionamiento de la cola de trabajos
En función del número de trabajos enviados por un usuario y del tiempo para ejecutar los trabajos, el consumidor puede experimentar retrasos antes de que se ejecuten los trabajos. La cola de trabajos garantiza que Schematics esté equitativamente disponible para todos sus usuarios, independientemente de la carga generada por un usuario.
Ejemplo
Si un user-1 tiene 20 trabajos en espera en la cola y user-2 envía un nuevo trabajo, el trabajo de User-2 espera en una cola, por delante de los 20 trabajos de user-1's para hacer que Schematics
esté disponible de forma equitativa para user-1 y user-2.
¿Cuándo entra el trabajo en la cola pendiente?
A continuación se muestran las tareas del trabajo cuando entra en la cola pendiente.
- su trabajo requiere más tiempo para completarse. Compruebe que se haya especificado suficiente tiempo para que el trabajo se ejecute.
- la imagen utilizada por la ejecución del trabajo no existe. Comprueba que existen los datos de la imagen proporcionada y que se ha especificado el nombre.
- No se han especificado los parámetros de la variable de entorno que necesita el trabajo. Compruebe que las variables de entorno estén definidas.
- Los mandatos o argumentos que se pasan al trabajo no son válidos. Compruebe que los distintivos de argumento especificados sean correctos.
Tiempo de espera de trabajo
Las tareas de Terraform, como planificar, aplicar y destruir en un espacio de trabajo, no deberían tardar más de unas horas en aprovisionar o desaprovisionar recursos. Si está aprovisionando muchos recursos simultáneamente, lo que lleva muchas
horas, se sugiere dividir los recursos en diferentes espacios de trabajo. Schematics limita el tiempo de ejecución de un trabajo a 24 horas. Transcurridas 24 horas, los trabajos se dan por finalizados y el trabajo se marca como STOPPED y el área de trabajo muestra ACTIVE, o INACTIVE.
Después de 24 hours, se envía una señal de interrupción para detener la ejecución del trabajo. Se da un periodo de gracia de 10 minutes para que finalice el comando. Si no se completa en este tiempo, se envía una señal
de terminación y se termina el trabajo. Se realiza una renovación de Terraform después de detener el trabajo para asegurarse de que se recopila el archivo de estado y otros datos.
En un trabajo, se ejecutan varios mandatos como terraform init, terraform apply y terraform refresh. Si el trabajo excede el tiempo de espera en un mandato, todos los mandatos adicionales sólo obtienen
el 10 minutes adicional para finalizar. Al final de 10 minutes, se termina cada mandato.
Ejemplo Si un trabajo se queda atascado para siempre en una aplicación de Terraform, cuando se detiene el comando y si se ejecuta un refresco. Si refresh también está atascado, después de 15 minutes, se ejecuta un kill.
local exec y remote exec de Terraform tienen un límite de tiempo de 30 minutes y termina la ejecución del trabajo si se supera.