Tengo un proceso de trabajo que procesa 1 mensaje RabbitMq a la vez. En este momento, tan pronto como el trabajador sale, el supervisor lo reinicia (lo que procesará el siguiente mensaje).
Me gustaría establecer un intervalo X segundos, para que el supervisor no se reinicie inmediatamente, sino que espere una cantidad de tiempo determinada antes de iniciar otro trabajador.
es posible? ¿Cómo?
fuente
Necesitaba una forma simple de ejecutar un comando desde el interior de un contenedor acoplable, donde no hay cron. Esto es lo que estoy usando:
startsecs = 0 asegura que el supervisor piense que el comando se inició correctamente incluso si sale después de unos segundos. De lo contrario, el supervisor dejará de reiniciarlo, pensando que está en un bucle.
Esto es lo que verías en /root/date.ts con el ejemplo anterior:
Ajuste el sueño a su gusto y reemplace 'date >> / root / test.ts' con lo que necesite.
Esta solución también es útil si necesita ejecutar un trabajo cron con más frecuencia que cada minuto.
fuente
y entonces
1. necesita usar el
exec
comando, de lo contrario se bifurcará un subprogresosleep 60 && exec your command
y su progreso se verá de la siguiente maneray luego, cuando usa
supervisorctl
para detener urApp, detendrá el progreso 1818 y dejará 3872 un progreso huérfano2.recomienda cambiar los segundos de inicio a 5 más que los segundos de suspensión, luego, cuando inicie esta aplicación y verifique el estado, le mostrará que está comenzando
de lo contrario, si establece un valor menor que los segundos de suspensión, cuando inicie la aplicación y verifique el estado, obtendrá un estado de ejecución, pero aún está durmiendo cmd antes de la ejecución real
3.Cuando cambie su archivo de configuración, debe usar cmd de recarga o simplemente reiniciar su supervisor para que funcione
fuente