2013-04-21 18 views
30

Ist es erforderlich, "Worker" Informationen in Procfile zu geben? Wenn ja dann was es eigentlich ist - konnte diesbezüglich keinen schönen Artikel finden. Ich hoffe ihr habt vielleicht eine Idee. Ich habe bereits web: node server/server.js Detail in der Procfile hinzugefügt. Jede Hilfe wäre willkommen!Was ist Procfile? und Web und Worker

Antwort

41

procfile ist ein Mechanismus für die Erklärung, welche Befehle von Ihrer Anwendung dynos auf der Heroku-Plattform ausgeführt werden.

Von Process Types and the Procfile, die eine gute Einführung ist, aber im Grunde verwenden Sie die procfile Heroku zu sagen, wie verschiedene Teile Ihrer App laufen. Der Teil links vom Doppelpunkt in jeder Zeile ist der Prozesstyp; Der Teil auf der rechten Seite ist der Befehl, der ausgeführt wird, um diesen Prozess zu starten.

Prozesstypen können alles sein, obwohl web speziell ist, da Heroku HTTP-Anfragen an Prozesse weiterleitet, die mit dem Namen web gestartet wurden. Andere Prozesse, z. B. Hintergrundarbeiter, können benannt werden, und Sie können den Heroku-Werkzeuggurt verwenden, um diese Prozesse zu starten oder zu stoppen, indem Sie auf seinen Namen verweisen.

Kurz gesagt, worker ist nicht erforderlich, es sei denn, Sie möchten einen anderen Prozess im Hintergrund von controlling process with the heroku ps command ausführen.

+5

http://blog.daviddollar.org/2011/05/06/introducing-foreman.html Dies ist auch eine nette Einführung in das Thema. – Kashyap

+2

@Kashyap Guter Anruf. Es ist erwähnenswert, dass der Heroku Toolbelt Foreman lokal installiert, so dass Sie die gleiche Procfile verwenden können, um Ihre eigenen Apps in der Entwicklung zu betreiben. –

+0

Hey Leute, eigentlich bekomme ich einen Fehler und ich habe es hier gepostet - es wäre toll, wenn du dir das mal ansehen könntest. Ich kratzte mich am Kopf, um das Problem zu lösen, scheiterte jedoch. http://stackoverflow.com/questions/16129625/getting-error-while-running-command-heroku-psscale-worker-1-error –

5

Sie würden nur einen "worker" -Eintrag in Ihrem Procfile benötigen, wenn Sie eine Art Hintergrundjobsystem verwenden möchten (d. H. Warteschlangen für lange laufende Aufgaben für später). Heroku hat mehr Informationen hier:

https://devcenter.heroku.com/articles/procfile

+2

Auch der Name "Arbeiter" ist willkürlich. Sie können sie in Ihrem Procfile beliebig benennen. "Arbeiter", "E-Mail", "sidekiq", "ladygaga_twitter_feed_watcher". Dadurch können Sie jeden Typ unabhängig verwalten ($ heroku ps: scale emailer = 2). Wenn mehrere "Worker" -Typen in einer Proc-Datei vorhanden sind, wird nur die zuletzt aufgelistete verwendet. – Patrick

+0

@Patrick Sicher. Ich glaube, Heroku legt einige Standardeinstellungen für Worker fest (bei Rails-Apps kann es 'Rake-Jobs: Arbeit' genannt werden), aber ansonsten ist der Name für den Benutzer. –