我第一次尝试延迟工作。
我使用 和 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
它说工作开始但什么都不做。 我在这里失踪了什么?
答案 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传递环境变量。