Sidetiq 定时任务

class SidekiqCreateMonthPlanWorker
    #定时自动生成下月计划
    include Sidekiq::Worker
    include Sidetiq::Schedulable

    #recurrence { daily }  每天午夜执行
 
    recurrence do
       # 每隔15分钟运行一次:minutely(15)
       # 每个小时的0,15,30,45分都执行:hourly.minute_of_hour(0, 15, 30, 45)
       # minutely(1)
   #monthly.day_of_month(12)   #每月的12号0点执行 monthly.day_of_month(12).hour_of_day(1) #每月的12号1点执行 end def perform(*args) #Rails.logger.info "statrt ==> #{Time.now}" #puts "AQI小时 statrt ==> #{Time.now}" next_mmm_work_jobs?month=1 #0 本月 1 下月 end end

  

def perform(*args)
 # Do something later
 sleep 10
 1000.times do |index|
   user = User.new
   user.name = "atpking#{index}"
   user.save
 end
end

手动执行sidekiq任务时,要先把sidekiq打开才能执行

5. 在需要的地方controller或者model中调用,调用示例如下

注意:perform是一个实例方法,但是在调用的时候是用类调用

AddLotsOfUsersJob.perform_later #常规异步执行
AddLotsOfUsersJob.set( wait: 20.minutes ).perform_later #指定延迟多久执行
@users = User.all
#HardWorker.perform_async('bob', 5) #常规异步执行
#HardWorker.perform_in(5.minutes, 'bob', 5) #延迟执行
#User.delay.do_some_stuff(current_user.id, 20) # 也可以通过 delay 来新建任务


作者:小新是个程序媛
链接:https://www.jianshu.com/p/7ea473097023
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
原文地址:https://www.cnblogs.com/lmg-jie/p/8022436.html