2

どこかで読んだように、サーバーの起動時にdelayed_jobsを開始するには、config/deploy.rbに次のように書く必要があります:

require "delayed/recipes"

set :rails_env, "production" #added for delayed job

namespace :delayed_job do
  desc "Start delayed_job process" 
  task :start, :roles => :app do
    run "cd #{current_path}; script/delayed_job start #{rails_env}" 
  end

  desc "Stop delayed_job process" 
  task :stop, :roles => :app do
    run "cd #{current_path}; script/delayed_job stop #{rails_env}" 
  end

  desc "Restart delayed_job process" 
      task :restart, :roles => :app do
        run "cd #{current_path}; script/delayed_job restart #{rails_env}" 
  end
end

after "deploy:start", "delayed_job:start" 
after "deploy:stop", "delayed_job:stop" 
after "deploy:restart", "delayed_job:restart"

動いていない。実際、以前はこのファイルが存在すると思っていましたが、存在しませんでした (私はそれを読みました)。では、それを機能させ続けるにはどうすればよいでしょうか?

さらに質問があります。Web 実行中にジョブの処理を停止/再開するにはどうすればよいですか?

4

1 に答える 1

0

ちょうど試して:

desc "Restart delayed_job process"
    task :restart, :roles => :app do
     run "cd #{current_path}; RAILS_ENV=production bundle exec script/delayed_job restart #{rails_env}"
end

これはうまくいくはずです。

于 2012-11-21T12:53:53.310 に答える