- 首先要先安裝redis服務(wù)器端
sudo apt-get install redis-server
# 檢查Redis服務(wù)器系統(tǒng)進(jìn)程
~ ps -aux|grep redis
redis 4162 0.1 0.0 10676 1420 ? Ss 23:24 0:00 /usr/bin/redis-server /etc/redis/redis.conf
conan 4172 0.0 0.0 11064 924 pts/0 S+ 23:26 0:00 grep --color=auto redis
# 通過(guò)啟動(dòng)命令檢查Redis服務(wù)器狀態(tài)
~ netstat -nlt|grep 6379
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN
# 通過(guò)啟動(dòng)命令檢查Redis服務(wù)器狀態(tài)
~ sudo /etc/init.d/redis-server status
redis-server is running
- 安裝好redis后,就可以安裝sidekiq了
gem 'sidekiq'
配置Active Job adapter
class Application < Rails::Application
# ...
config.active_job.queue_adapter = :sidekiq
end
- 運(yùn)行sidkiq
在app的根目錄下
bundle exec sidekiq
- 一切準(zhǔn)備好后,就可以用
ActiveRecord Job
了
rails g job Prac
#invoke test_unit
#create test/jobs/prac_job_test.rb
#create app/jobs/prac_job.rb
prac_job.rb
中
class PracJob < ActiveJob::Base
queue_as :default
def perform(string)
#do something in there
#order = Order.first
#order.user_name = string
#order.save
end
end
- 在
model
和controller
中調(diào)用job
# PracJob.perform_later("prac001")馬上運(yùn)行job
# PracJob.set(wait: 30.second).perform_later("prac002")30秒后運(yùn)行job
# PracJob.set(wait_until: Time.new(2015,7,1,20,45,00)).perform_later("prac003")直到2015-7-1 20:45:00運(yùn)行job