Sul mio computer locale sto provando ad avviare la mia app per rails e il lavoro in ritardo con Foreman. Il mio Procfile è il seguente:Rails + caporeparto + operaio blocca server
web: bundle exec rails server -p $PORT
worker: bundle exec rake jobs:work
Quando avvio caposquadra vengono eseguite solo le prime due richieste web. Con la terza richiesta il server si blocca. La prima richiesta viene emessa nella console, la seconda no.
Se lascio il worker nel mio Procfile, il server funziona correttamente e sta trasmettendo tutto alla console. Inoltre, quando avvio il server dei rail e il worker senza Foreman, tutto funziona correttamente.
Quindi sembra che ci sia un problema con Foreman. Sto indovinando che è un problema con Foreman non inviare alcun output alla console dopo la prima richiesta e quindi il buffer non viene scaricato. Ho cercato altri post e di conseguenza ho aggiunto STDOUT.sync = true al mio development.rb ma senza alcun successo.
Qualcuno ha un indizio? Grazie!
Non ancora, l'aggiornamento non ha risolto il problema neanche per me. Ora ho un Procfile diverso per lo sviluppo in cui ho lasciato fuori il lavoratore, che accendo manualmente.Inizio foreman con '' 'foreman start -p 3000 -f Procfile.dev''' e l'operatore con' '' rake jobs: work'''. Non ideale ma funziona per me. – smek
Funziona anche per me. Ma non sono sicuro che Heroku lo supporti. Sto usando Heroku per distribuire la mia app. Hai esaminato questo? – Vighnesh
Sì, funziona perfettamente. Hai solo un procfile diverso per lo sviluppo locale. Heroku usa '' 'Procfile''' e per lo sviluppo io uso' '' Procfile.dev''' – smek