rails中实现定时任务的之sidetiq

环境: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,会出现如下图:

rails中实现定时任务的之sidetiq_第1张图片

这个是到午夜执行的任务。

四、测试:

修改my_schedule.rb文件为:

class MySchedule

include Sidekiq::Worker

include Sidetiq::Schedulable

recurrence do

minutely(1)

end

def perform

puts "sidetiq 测试"

end

end

改为每一分钟执行一次。

执行sidekiq命令,会出现如图:

rails中实现定时任务的之sidetiq_第2张图片

运行成功。

你可能感兴趣的:(rails中实现定时任务的之sidetiq)