本番環境では、3 つのプロセスを実行する必要があります。これは私の procfile で、Foreman を使用してそれらを開始します。
web: bundle exec rails s Puma -p $PORT
queuing: bundle exec clockwork clock.rb
workers: bundle exec rake resque:workers
展開には Mina を使用しています。展開タスクの最後に Foreman を開始する適切な方法は何ですか? 現在、私は次のように始めています:
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
...しかし、「mina deploy」コマンドが正常に終了せず、ローカルコンソールがこれらのプロセスの実行内容を出力し始めるため、それは適切な方法ではないと思います。
質問 2: これら 3 つのプロセスのそれぞれのログを個別のファイルで個別に初期化するにはどうすればよいですか?
また、これら 3 つのプロセスのいずれかがクラッシュしたときに、これら 3 つのプロセスすべてが強制終了されないようにするにはどうすればよいでしょうか? プロセスがクラッシュしたときにプロセスを再起動するにはどうすればよいですか?
ありがとう!