• 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
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    uoj311 【UNR #2】积劳成疾
    SQL中MAX()和MIN()函数的使用(比较字符串的大小)
    SQL Server 怎样生成序列号(虚拟数字辅助表)
    如何使用引用类型来改变变量的值
    C#获取当前主机硬件信息
    JS扫雷原理性代码
    Struts2文件的上传和下载实现
    Struts2拦截器详解
    Struts2拦截器配置和使用
    Struts2转换器配置和用法
  • 原文地址:https://www.cnblogs.com/lmg-jie/p/8022436.html
Copyright © 2020-2023  润新知