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

Cat*_*ish 3 cron ruby-on-rails whenever ruby-on-rails-3 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
...
Run Code Online (Sandbox Code Playgroud)

这是我的schedule.rb代码:

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

every 1.day :at => "8:00am" do
    runner "BirthdayReminders.send_birthday_email_reminders"
end
Run Code Online (Sandbox Code Playgroud)

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

set :whenever_command, "bundle exec whenever"
require "whenever/capistrano"
Run Code Online (Sandbox Code Playgroud)

qua*_*rum 5

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

every 1.day :at => "8:00am" do
    runner "BirthdayReminders.send_birthday_email_reminders"
end
Run Code Online (Sandbox Code Playgroud)

尝试在白天添加逗号:

every 1.day, :at => "8:00am" do
  ...
Run Code Online (Sandbox Code Playgroud)

  • 啊,第二个想到逗号确实解决了它.添加逗号后我没有提交我的代码,因此`cap deploy`没有提取它. (2认同)