我必须根据用户的请求运行多个作业。然而,其中只有一个是重要的。
所以我的MainWorker
方法perform
我称之为Worker1
,Worker2
等不同的其他工作人员。
可以延迟Worker1和Worker2,我需要优先考虑MainWorker。
所以这就是我的执行方法现在的样子
class MainWorker
def perform( user_id )
User.find( user_id ).main_task
Worker1.perform_aync( user_id )
Worker2.perform_aync( user_id )
end
end
我以后可能会有更多的子工作人员。我想知道这是一个好习惯还是有更好的方法来做到这一点。但是,我给自定义队列名称和优先级基于工作者。
答案 0 :(得分:2)
Sidekiq有一些第三方附加组件。见这里:https://github.com/mperham/sidekiq/wiki/Related-Projects
可能对您有所帮助的是:SidekiqSuperworker。