En mi máquina local, intento iniciar la aplicación de mis rieles y retrasar la tarea de trabajo con Foreman. Mi archivo de proceso se ve así:Rails + foreman + worker cuelga el servidor
web: bundle exec rails server -p $PORT
worker: bundle exec rake jobs:work
Cuando comienzo capataz solo se ejecutan las dos primeras solicitudes web. Con la tercera solicitud, el servidor se cuelga. La primera solicitud se envía a la consola, la segunda no.
Si dejo fuera al trabajador en mi Procfile, el servidor funciona perfectamente y está enviando todo a la consola. Además, cuando inicio el servidor y el empleado de Rails sin Foreman todo está funcionando bien.
Parece que hay un problema con Foreman. Supongo que es un problema con Foreman que no envía nada a la consola después de la primera solicitud y, por lo tanto, el búfer no se vacía. He buscado en otras publicaciones y, como resultado, agregué STDOUT.sync = verdadero a mi development.rb pero sin éxito.
¿Alguien tiene una pista? ¡Gracias!
Todavía no, la actualización tampoco me solucionó el problema. Ahora tengo un Procfile para el desarrollo diferente donde he omitido al trabajador, que enciendo manualmente.Comienzo el capataz con '' 'foreman start -p 3000 -f Procfile.dev''' y el trabajador con' '' rake jobs: work'''. No es ideal, pero funciona para mí. – smek
Eso también me funciona. Pero no estoy seguro de si Heroku lo admite. Estoy usando Heroku para implementar mi aplicación. ¿Ha investigado eso? – Vighnesh
Sí, eso funciona bien. Simplemente tiene un archivo diferente para el desarrollo local. Heroku usa '' 'Procfile''' y para el desarrollo utilizo' '' Procfile.dev''' – smek