1

javanチュートリアルでいつでもrailscastに従っていますが、それを実現できないようです。cron ジョブを実行するには、capistrano をインストールする必要がありますか? deploy.rb がないからです。手順を詳細にリストします。cron が機能しない原因となった、見逃した手順があれば教えてください。新しいメールを受信したというレポートが常に表示されますが、メール操作は送信されませんでした。

ステップ1:

wheneverize .

====> config フォルダー内の schedule.rb

ステップ 2: [Scheduler.rb]

every '1 * * * *' do
   runner 'Company.count'
end

ステップ3:【「ストア」とは?

whenever --update-crontab store

ステップ 4: [config/deploy.rb]<-- deploy ファイルがないので、自分で作成します。

after "deploy:symlink", "deploy:update_crontab"  

namespace :deploy do  
  desc "Update the crontab file"  
  task :update_crontab, :roles => :db do  
     run "cd #{release_path} && whenever --update-crontab #{application}"  
  end  
end 

ステップ 5 :

whenever --update-crontab store

crontab -l

私は何を逃したのですか?なぜうまくいかなかったのですか?私はRORの初心者なので、一歩一歩教えてください..ありがとう。

4

1 に答える 1

2

When docsには、 Capistranoを使用してWhenをデプロイする例があります。以下をCapistranoデプロイ構成の先頭に追加するだけです。

set :whenever_command, "bundle exec whenever"  # set this first if using bundler
require "whenever/capistrano"

その後、いつでも展開の一部としてcronにインストールされます。


アップデート

毎回cronが正常に更新されたことをテストするには、ターゲット マシンの Capistrano デプロイ ユーザーとしてターゲット マシンにsshcrontab -lし、 を実行します。次のような出力が表示されます。

crontab -l

# Begin Whenever generated tasks for: app_name
0 0 * * * /bin/bash -l -c 'cd /opt/path/app_name/releases/20120321133343 && RAILS_ENV=production rake group:task --silent'

0 3 * * 6 /bin/bash -l -c '/opt/path/app_name/shared/bin/script'

# End Whenever generated tasks for: app_name
于 2012-04-04T12:38:27.993 に答える