使用active job
支持的后端队列类型包括
Backburner
Delayed Job
Qu
Que
queue_classic
Resque 1.x
Sidekiq
Sneakers
Sucker Punch
这里使用Delayed Job作为后端队列,使用mysql做存储
安装:
gem 'delayed_job_active_record'
bundle install
rails generate delayed_job:active_record
rake db:migrate
在config/application.rb
config.active_job.queue_adapter = :delayed_job
异步添加任务
//GuestsCleanupJob.delay.perform_now(1)
GuestsCleanupJob.set(queue:
:another_queue
).perform_later(record)
开启处理服务
//Delayed::Worker.new.start
RAILS_ENV=production delayed_job restart