【发布时间】:2015-10-04 04:39:46
【问题描述】:
我需要在 rails 4.2 应用程序中运行重复作业。我在任何时候安装 gem。
我创建 ActiveJob
class Analytics::CalculateAllJob < ActiveJob::Base
queue_as :default
def perform(*args)
orgs = Org.all
orgs.each do |org|
org.departments
Rails.logger.info "Scheduled a job to calculate Analytics"
end
end
end
我在 shedule.rb 中添加了 cron 作业
every 10.minutes do
runner "Analytics::CalculateAllJob"
end
只要 -i 就运行命令。他将更改写入 crontab 我从命令行运行 cron 命令:
/bin/bash -l -c 'cd /home/www/myproject && bin/rails runner -e development '\''Analytics::CalculateAllJob'\'' >> /home/www/myproject/log/cron.log 2>&1'
得到
/home/www/.rvm/gems/ruby-2.2.0@rails420/gems/railties-4.2.0/lib/rails/commands/runner.rb:62:in `<top (required)>': uninitialized constant Analytics::CalculateAllJob (NameError)
from /home/www/.rvm/gems/ruby-2.2.0@rails420/gems/railties-4.2.0/lib/rails/commands/runner.rb:62:in `eval'
from /home/www/.rvm/gems/ruby-2.2.0@rails420/gems/railties-4.2.0/lib/rails/commands/runner.rb:62:in `<top (required)>'
from /home/www/.rvm/gems/ruby-2.2.0@rails420/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:123:in `require_command!'
from /home/www/.rvm/gems/ruby-2.2.0@rails420/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:90:in `runner'
from /home/www/.rvm/gems/ruby-2.2.0@rails420/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /home/www/.rvm/gems/ruby-2.2.0@rails420/gems/railties-4.2.0/lib/rails/commands.rb:17:in `<top (required)>'
from /home/www/myproject/bin/rails:8:in `<top (required)>'
from /home/www/.rvm/rubies/ruby-2.2.0/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/www/.rvm/rubies/ruby-2.2.0/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from -e:1:in `<main>'
我做错了什么?
【问题讨论】:
标签: ruby-on-rails cron whenever