Clockwork實作
- 步驟1:安裝clockwork,在Gamfile中新增以下指令後,執行bundle install
gem 'clockwork'
- 步驟2:在Project目錄下新增排程控制檔,本範例中的檔名是clock.rb。排程的方式可以by 秒、分、時、日,也可以指定特定起始時間。
require 'clockwork'
require './config/boot'
require './config/environment'
module Clockwork
handler do |job, time|
puts "Running #{job}, at #{time}"
"#{job}".constantize.perform_later
end
every(10.seconds, 'TestJob')
# every(3.minutes, 'less.frequent.job')
# every(1.hour, 'hourly.job')
# every(1.day, 'midnight.job', :at => '00:00')
end
- 步驟3:在Terminal下執行,要注意的是如果有跟sidekiq搭配的話,sidekiq也要開啟
clockwork clock.rb
Clockwork執行結果
左邊的是Clockwork右邊的是Sidekiq,可以看出Clockwork在每過10秒便會送出一個Job Request給Sidekiq進行處理,範例中經過了20秒,共送出兩次TestJob給Sidekiq。

沒有留言:
張貼留言