美文网首页
sidekiq源码解析

sidekiq源码解析

作者: SecondRocker | 来源:发表于2022-07-10 18:13 被阅读0次
    image.png

    client调用

    perform

    放入 queue 队列

    perform_at,perform_async(alias方法)

    以执行时间为score放入有序集合schedule中


    image.png

    队列

    queue:default 队列

    Sidekiq::Manager 按设定的并发数(concurrency),调用Sidekiq::Process(创建线程)取出队列,消费队列,递归执行
    并使用互斥量实现线程同步


    image.png image.png image.png
    Sidekiq.queues=%w( high,3 default,2 low,1 ) 
    #["high", "high", "high", "default", "default", "low"] 
    

    brpop按照指定顺序取出,这个方法取到一个queue后重新排序;因权重高的数量多高概率排前面


    image.png image.png image.png

    实际执行


    image.png

    retry schedule 重试和计划任务队列

    使用lua脚本取出任务,取执行时间(分数)在当前时间前的


    image.png image.png

    https://segmentfault.com/a/1190000007321951

    相关文章

      网友评论

          本文标题:sidekiq源码解析

          本文链接:https://www.haomeiwen.com/subject/xoiwbrtx.html