Estoy ejecutando unicornio y estoy tratando de obtener cero reinicios de tiempo de inactividad trabajando.Reiniciar Unicornio con USR2 no parece volver a cargar las configuraciones de production.rb
Hasta ahora, es una salsa increíble, el proceso maestro se divide e inicia a 4 nuevos trabajadores, luego mata al anterior, todos están contentos.
Nuestros guiones de enviar el siguiente comando para reiniciar unicornio:
kill -s USR2 `cat /www/app/shared/pids/unicorn.pid`
En la superficie todo lo que se ve muy bien, pero resulta que el unicornio no está recargando production.rb. (Cada vez que implementamos, cambiamos el valor config.action_controller.asset_host
a un nuevo punto final de contenedor CDN con nuestros recursos precompilados).
Después de reiniciar unicornio de esta manera, el host de recursos sigue apuntando a la versión anterior. Al hacer un reinicio real (es decir, detener el proceso maestro, luego iniciar el unicornio nuevamente desde cero) se recogen los nuevos cambios de configuración.
preload_app
se establece en true
en nuestro archivo de configuración de unicornio.
¿Alguna idea?
¿Su configuración de unicorn.rb intenta matar el proceso en .oldbin? Ver solución: http: // jessewolgamott.com/blog/2012/01/02/the-one-where-unicorn-does-not-update/ –
Definitivamente está matando a un viejo maestro: una vez que se completa el reinicio y los trabajadores están listos, 'ps -ef | grep unicorn' muestra solo el maestro y 4 procesos de trabajo. El pid del maestro es diferente al pid del antiguo maestro antes de emitir el USR2. –