2012-07-06 8 views
6

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!

risposta

3

UPDATE: tracciati e risolte qui:

https://github.com/ddollar/foreman/issues/244

TL; DR: Installare la gemma, non utilizzare foreman.pkg


sto affrontando lo stesso problema .

Ecco un collegamento allo question che ho chiesto sullo stackoverflow. @smek, se hai trovato una risposta, per favore rispondi!

+0

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

+0

Funziona anche per me. Ma non sono sicuro che Heroku lo supporti. Sto usando Heroku per distribuire la mia app. Hai esaminato questo? – Vighnesh

+0

Sì, funziona perfettamente. Hai solo un procfile diverso per lo sviluppo locale. Heroku usa '' 'Procfile''' e per lo sviluppo io uso' '' Procfile.dev''' – smek

0

la maggior parte delle volte qualcuno ha lasciato una dichiarazione di debugger/pry nel codice o si inserisce un punto di interruzione da qualche parte.

se non riesci a trovare nulla di quello che puoi usare gli strumenti di sistema come lsof o gdb per scoprire cosa sta facendo il tuo processo rubino al momento. questo potrebbe aiutare a trovare il problema.

0

Ho appena iniziato a utilizzare Foreman circa un'ora fa e ho riscontrato alcuni problemi con entrambe le mie attività di rake e rails server in sospeso durante l'esecuzione da Foreman. Quando ho rimosso la gemma pry dal mio Gemfile, ha funzionato, ma non era accettabile visto che utilizzo la leva in fase di sviluppo.

Poi ho aggiornato a foreman versione 0.49.0 (che è stata rilasciata circa 10 minuti fa) e il problema è stato risolto. Peccato che non ho iniziato a lavorare su questa attività un'ora più tardi, perché poi avrei avuto 0.49.0 per iniziare e non ho dovuto scherzare per un'ora :)

Si dovrebbe provare l'aggiornamento Foreman e vedere se risolve il tuo problema

+0

Siamo spiacenti per la mia risposta in ritardo ma l'aggiornamento di Foreman non risolve il problema. – smek

2

Ho avuto un problema simile durante il tentativo di implementare e testare DJ + Foreman nel mio ambiente di sviluppo locale. Intendevo distribuire su Heroku e utilizzavo l'articolo following come guida. Se stai anche distribuendo su Heroku, ti consiglio di installare Heroku Toolbelt, che include Foreman. Nel mio caso ho già installato Heroku Toolbelt, quindi l'ho semplicemente reinstallato.

Problemi correlati