任何宝石在通过capistrano部署时出错时的Rails

时间:2013-01-02 04:32:57

标签: ruby-on-rails ruby-on-rails-3 cron whenever whenever-capistrano

我正在尝试通过rails项目创建我的第一个cron作业。运行cap deploy时,我收到此错误:

...
* 2013-01-01 22:29:00 executing `whenever:update_crontab'
  * executing "cd /var/www/vhosts/famnfo.com/releases/20130102042834 && bundle exec whenever --update-crontab FamNFo --set environment=production --roles db"
    servers: ["famnfo.com"]
    [famnfo.com] executing command
 ** [out :: famnfo.com] /var/www/vhosts/famnfo.com/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/core_ext/numeric/time.rb:49:in `days': wrong number of arguments (1 for 0) (ArgumentError)
 ** [out :: famnfo.com] from config/schedule.rb:23:in `initialize'
 ** [out :: famnfo.com] from /var/www/vhosts/famnfo.com/shared/bundle/ruby/1.9.1/gems/whenever-0.8.1/lib/whenever/job_list.rb:25:in `instance_eval'
 ** [out :: famnfo.com] from /var/www/vhosts/famnfo.com/shared/bundle/ruby/1.9.1/gems/whenever-0.8.1/lib/whenever/job_list.rb:25:in `initialize'
 ** [out :: famnfo.com] from /var/www/vhosts/famnfo.com/shared/bundle/ruby/1.9.1/gems/whenever-0.8.1/lib/whenever.rb:15:in `new'
 ** [out :: famnfo.com] from /var/www/vhosts/famnfo.com/shared/bundle/ruby/1.9.1/gems/whenever-0.8.1/lib/whenever.rb:15:in `cron'
 ** [out :: famnfo.com] from /var/www/vhosts/famnfo.com/shared/bundle/ruby/1.9.1/gems/whenever-0.8.1/lib/whenever/command_line.rb:55:in `whenever_cron'
 ** [out :: famnfo.com] from /var/www/vhosts/famnfo.com/shared/bundle/ruby/1.9.1/gems/whenever-0.8.1/lib/whenever/command_line.rb:106:in `updated_crontab'
 ** [out :: famnfo.com] from /var/www/vhosts/famnfo.com/shared/bundle/ruby/1.9.1/gems/whenever-0.8.1/lib/whenever/command_line.rb:36:in `run'
 ** [out :: famnfo.com] from /var/www/vhosts/famnfo.com/shared/bundle/ruby/1.9.1/gems/whenever-0.8.1/lib/whenever/command_line.rb:7:in `execute'
 ** [out :: famnfo.com] from /var/www/vhosts/famnfo.com/shared/bundle/ruby/1.9.1/gems/whenever-0.8.1/bin/whenever:41:in `<top (required)>'
 ** [out :: famnfo.com] from /var/www/vhosts/famnfo.com/shared/bundle/ruby/1.9.1/bin/whenever:19:in `load'
 ** [out :: famnfo.com] from /var/www/vhosts/famnfo.com/shared/bundle/ruby/1.9.1/bin/whenever:19:in `<main>'
    command finished in 2308ms
*** [deploy:update_code] rolling back
...

这是我的schedule.rb代码:

set :output, "#{path}/log/cron.log"

every 1.day :at => "8:00am" do
    runner "BirthdayReminders.send_birthday_email_reminders"
end

我已将此添加到我的capistrano deploy.rb文件

set :whenever_command, "bundle exec whenever"
require "whenever/capistrano"

1 个答案:

答案 0 :(得分:5)

set :output, "#{path}/log/cron.log"

every 1.day :at => "8:00am" do
    runner "BirthdayReminders.send_birthday_email_reminders"
end

尝试在白天添加逗号:

every 1.day, :at => "8:00am" do
  ...