1

我在 javan 教程中遵循 railscast,但我似乎无法实现它。是否必须安装 capistrano 才能进行 cron 工作?这是因为我没有 deploy.rb。我详细列出了步骤。如果我错过了任何步骤导致我的 cron 无法工作?我总是收到报告说我收到了一封新邮件,但我没有发送任何电子邮件操作。

步骤1:

wheneverize .

====> 配置文件夹中的 schedule.rb

第 2 步:[Scheduler.rb]

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

第三步:【什么是“存储”?】

whenever --update-crontab store

第 4 步:[config/deploy.rb]<-- 我没有部署文件,所以我自己创建了它。

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 文档有一个使用Capistrano部署Whenever的示例。只需将以下内容添加到Capistrano部署配置的顶部即可。

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

然后,无论何时将作为部署的一部分安装到cron中。


更新

要测试是否已成功更新cron,请以目标机器的 Capistrano 部署用户身份ssh到目标机器并运行crontab -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 回答