2016-09-27 21 views
0

私はRails 5アプリケーションでActive JobのキューバックエンドとしてDelayed Jobを使用していますが、起動後にUbuntu 14.04で作業者を開始する方法はわかりません。私はrails jobs:workをBashスクリプトにラップする必要がありますか?どのように私はそれが自動的に始まるでしょうか?またはbin/delayed_jobを使用することをお勧めしますか?Ubuntuで遅延ジョブを開始するには?

起動時に遅延ジョブを開始するにはどうすればよいですか?

答えて

1

あなたがどのOSを使用しているのかは問題ありません(Windowsでない限り:D)。コマンドが処理を開始する

bundle exec rake jobs:work 

delayed_jobにコマンドを再起動するには、次のとおりです。

RAILS_ENV=production script/delayed_job restart 

は、詳細はgems READMEをチェックしてください。

EDIT

(コメントによる)

あなたは、ユーザーのホームstart_delayed_jon.shにいくつかのbashスクリプトを作成することができます。

線に沿って何か:

#!/bin/bash 
cd /path/to/your/project/directory/ 
RAILS_ENV=development bundle exec rake jobs:work 

と/etc/rc.localの中でそれを実行します。

su -s /bin/bash - deploy /path/to/your/project/directory/start_delayed_jon.sh 
+0

うん、それは私が私のdevのマシン上でそれを起動するが、どのように私はUbuntuは、サーバの起動時に自動的に起動している方法は? – ilovebigmacs

+0

@ilovebigmacs編集 –

+1

PSを参照してください。私はDJの代わりに「サイドキック」をお勧めします。 –

3

Whenever Gem、あなたができるセットアップ再起動時にそれを実行するcronジョブを使用しました。あなたのすくいファイルで次に

every :reboot do 
rake 'start_delayed_jobs' 
end 

:あなたのschedule.rbファイルで

desc 'Start delayed jobs' 
    task :start_delayed_jobs do 
    system("#(Rails.root}/bin/delayed_job start") 
    end 
end 
+0

これはうまくいきますが、typo - > system( "#{Rails.root}/bin/delayed_job start" – Jay

関連する問題