Für Produktionszwecke benötige ich drei Prozesse laufen. Dies ist mein Procfile und ich benutze Foreman, um sie zu starten:Richtiger Einsatz einer Rails App mit Mina und Foreman
web: bundle exec rails s Puma -p $PORT
queuing: bundle exec clockwork clock.rb
workers: bundle exec rake resque:workers
Für den Einsatz verwende ich Mina. Wie kann Foreman am Ende der Bereitstellungsaufgabe gestartet werden? Zur Zeit beginne ich wie folgt aus:
desc "Deploys the current version to the server."
task :deploy => :environment do
deploy do
invoke :'git:clone'
invoke :'deploy:link_shared_paths'
invoke :'bundle:install'
invoke :'rails:db_migrate'
invoke :'rails:assets_precompile'
to :launch do
queue "touch #{deploy_to}/tmp/restart.txt"
queue "bundle exec foreman start"
end
end
end
... aber ich glaube nicht, dass der richtige Weg ist, da die „mina einsetzen“ Befehl nie erfolgreich beendet und die lokale Konsole beginnt gerade, was auch immer die Ausgabe diese Prozesse tun .
Frage Nummer zwei: Wie initialisiere ich die Protokollierung für jeden dieser drei Prozesse separat in separaten Dateien?
Und wie verhindere ich das Töten all dieser drei Prozesse, wenn einer von ihnen abstürzt? Wie kann ich den Prozess neu starten, wenn er abstürzt?
Danke!