环境:ubuntu14.4,ruby2.1.5, rails4.2
sidetiq依赖于sidekiq,所以在Gemfile里要添加sidekiq。
一、新一个rais项目:rails new schedule_job --skip-bundle
进入项目文件夹: cd schedule_job
打开Gemfile文件:vim Gemfile
把source 'https://rubygems.org'改为source 'https://ruby.taobao.org'。
在文件里加入:gem 'sidekiq',gem 'sidetiq'
然后运行:bundle install
安装redis-server: sudo apt-get install redis-server
redis-cli进入redis,运行ping
PONG说明安装成功。
二、新测试文件:
在app/jobs文件夹下产生文件,新建定时任务类:MySchedule
vim my_schedule.rb,修改为:
class MySchedule
include Sidekiq::Worker
include Sidetiq::Schedulable
recurrence { daily }
def perform
puts "sidetiq 测试"
end
end
保存退出。
在config/application.rb里面添加: config.active_job.queue_adapter = :sidekiq
三、运行�sidekiq,会出现如下图:
这个是到午夜执行的任务。
四、测试:
修改my_schedule.rb文件为:
class MySchedule
include Sidekiq::Worker
include Sidetiq::Schedulable
recurrence do
minutely(1)
end
def perform
puts "sidetiq 测试"
end
end
改为每一分钟执行一次。
执行sidekiq命令,会出现如图:
运行成功。