3

だから私は本番アプリにdelayed_jobをインストールしました。rake jobs:workを介して正常に実行されます。しかし、capistranoを介してスクリプトを開始しようとすると、次のようになります。

run "if [ -d #{current_path} ]; then cd #{current_path} && RAILS_ENV=#{rails_env} script/delayed_job start -n 2; fi"

エラーなしで起動します。しかし、チェックscript/delayed_job statusすると、インスタンスが実行されていないことがわかります。助言がありますか?

編集

(経由で)何かが実行されているように見えますsudo ps aux | grep delayed

 1000      7952  0.0  0.1 112312   832 pts/0    S+   16:17   0:00 grep delayed

スクリプトを実行したときの出力:

/path/to/latest/release/config/initializers/bypass_ssl_verification_for_open_uri.rb:2: warning: already initialized constant VERIFY_PEER
4

2 に答える 2

4

shared / tmp/pidフォルダーの権限を確認してください。

capistranoを実行しているユーザーが、PIDファイルをフォルダーに書き込む権限を持っていない限り、遅延ジョブは実行されません。

于 2013-01-30T19:22:16.690 に答える
0

これは私がcapistranoを使用して遅延ジョブデーモンを開始する方法です、多分これはあなたのためにも働くでしょう:

require "delayed/recipes"

%w[start stop restart].each do |command|
  after "deploy:#{command}", "delayed_job:#{command}"
end

の出力はps aux | grep delayed独自のプロセスのみを示しているため、DJはマシン上で実行されていません。多分これはあなたの-節と関係がありますif。それを削除してみて、コマンドを使用して正しく起動するかどうかを確認できps aux | grepます。出力は次のようになります。

username    9989  0.0  0.0   7640   892 pts/0    S+   10:54   0:00 grep delayed
username   10048  0.0  9.4 288244 99156 ?        Sl   Jan22   2:16 delayed_job
于 2013-01-26T09:55:32.227 に答える