2016-06-05 14 views
0

Meine Heroku App startet keine Arbeiter. Ich skalieren, um die Arbeiter zuerst:Heroku startet keine Arbeiter

heroku ps:scale resque=1 -a test-eagle 
Scaling dynos... done, now running resque at 1:Free 

Dann, wenn ich die Arbeiter überprüfen, ich sehe:

heroku ps:workers -a test-eagle 
<app> is running 0 workers 

Was hier worng werden könnte? Dies ist, wie mein Procfile aussieht:

web: bundle exec puma -C config/puma.rb 
resque: env TERM_CHILD=1 bundle exec rake resque:work QUEUE=* COUNT=1 

Oder ist es, weil es eine kostenlose App, die nur 1 Web-Arbeiter und keine andere dynos umgehen kann?

Edit:

Wenn ich überprüfen, mit heroku ps -a <appname> ich sehe, dass kurz nach dem Arbeiter Start abgestürzt ist: worker.1: crashed. Dies ist ohne etwas in der Anwendung selbst zu tun.

+0

Haben Sie versucht, diesen Worker lokal mit "heroku local resque" auszuführen? – Schnouki

Antwort

0

UPDATE: Nun, ich habe eine "kostenlose" App, die auch Puma laufen lässt. Also, ich procfile wie folgt aktualisiert:

web: bundle exec puma -C config/puma.rb 
resque: env TERM_CHILD=1 bundle exec rake resque:work QUEUE=* COUNT=1 

Danach schob ich die App Heroku und lief Heroku ps: Skala, wie Sie angegeben haben. Es funktionierte wie folgt:

D:\Bitnami\rubystack-2.2.5-3\projects\kctapp>heroku ps -a kctapp 
=== web (Free): bundle exec puma -C config/puma.rb (1) 
web.1: up 2016/06/06 19:38:24 -0400 (~ 1s ago) 


D:\Bitnami\rubystack-2.2.5-3\projects\kctapp>heroku ps:scale resque=1 -a kctapp 
Scaling dynos... done, now running resque at 1:Free 

D:\Bitnami\rubystack-2.2.5-3\projects\kctapp>heroku ps -a kctapp 
=== web (Free): bundle exec puma -C config/puma.rb (1) 
web.1: up 2016/06/06 19:38:24 -0400 (~ 51s ago) 

=== resque (Free): env TERM_CHILD=1 bundle exec rake resque:work QUEUE=* COUNT=1 (1) 
resque.1: crashed 2016/06/06 19:39:18 -0400 (~ -3s ago) 

Beachten Sie, dass es abgestürzt ist. Aber ich habe keinen Code, der läuft, also könnte das der Grund sein? Beachten Sie auch, dass ich den Befehl "heroku ps" als "heroku ps: worker" für mich benutze und einen Fehler ausspreche, der besagt, dass es veraltet ist.

Das ist meine config/puma.rb, wenn das hilft:

workers Integer(ENV['WEB_CONCURRENCY'] || 4) 
threads_count = Integer(ENV['MAX_THREADS'] || 8) 
threads threads_count, threads_count 

preload_app! 

rackup  DefaultRackup 
port  ENV['PORT']  || 5000 
environment ENV['RACK_ENV'] || 'development' 

Mit edit: ich den Maßstab Befehl ...

verpasst

Siehe Skalierung in Heroku here. Die Optionen, die ich sehe, sind Web, Worker, Rake oder Konsole, nicht resque. Ich habe dein Kommando versucht und es hat "diese Formation" nicht erkannt. Ich bin neugierig darauf.

Wenn Sie eine kostenlose App prüfen, erhalten Sie keine Option, einen Worker-Dyno hinzuzufügen. Wenn Sie eine Hobby-App überprüfen, können Sie ihr Mitarbeiter hinzufügen. Mit professionellen Apps können Sie den Dynamiktyp zwischen Web und Worker mithilfe von 1X-, 2X- und Performance-Dynoden mischen und anpassen.

+0

Ich habe beide Dinge ausprobiert: 'resque' in' worker' umbenennen und den Plan von frei auf hobby umstellen. Aber mit dem gleichen Ergebnis. – John

+0

@John Mein Heroku Toolkit gibt mir völlig andere Antworten als deine. Ich bin auf Windows, aber der Heroku Befehl ruft im Grunde ihre Umgebung auf, so dass ich über die Unterschiede überrascht bin. Ich wollte es auf meinem Ubuntu-System ausprobieren, nur um festzustellen, dass es im Moment nicht verfügbar ist. Was sagt dir Heroku Version auf jeden Fall? Ich bekomme: heroku/toolbelt/3.43.3 (i386-mingw32) rubin/2.1.7 und heroku-cli/5.2.18-f850f09 (windows-amd64) go1.6.2 –

+0

Der Absturz hatte nichts mit der Heroku-Skalierung zu tun war eine nicht korrekte Einrichtung der Redis-Umgebungsvariablen, die den Absturz verursacht hat. Das wurde jetzt gelöst und jetzt funktioniert der Arbeiter gut. Vielen Dank! – John