rails使用"never“和”delayed_job_active_record“延迟作业

时间:2016-12-21 09:47:00

标签: ruby-on-rails delayed-job whenever

我第一次尝试延迟工作。

我使用 delayed_job_active_record 。每当我按照whenever上的说明进行操作时

gem 'whenever', :require => false
command: wheneverize .

并添加了schedule.rb

every 2.minutes do
  runner "Page.save_daily_detail"  #Page is name of model, and save_daily_detail put some entries in database
end

whenever --update-crontab

对于delayed_job_active_record

gem 'delayed_job_active_record'

命令:

rails generate delayed_job:active_record
rake db:migrate

也在application.rb

config.active_job.queue_adapter = :delayed_job

当我用

开始工作时
bundle exec rake jobs:work

它说工作开始但什么都不做。 我在这里失踪了什么?

1 个答案:

答案 0 :(得分:1)

你错过了重启crontab。

whenever --update-crontab <xyz_anyname> --set 'environment=production' #update crontab by passing environment
service crond restart # to restart crontab to reflect changes in Linux system

仅在linux上回答作品

在schedule.rb中添加此行

ENV['RAILS_ENV'] = "#{@pre_set_variables[:environment]}"

在本地和生产中相应地更新crontab传递环境变量。