从工人那里调用多个sidekiq工人

时间:2013-10-26 06:30:06

标签: ruby-on-rails-3 ruby-on-rails-3.2 redis sidekiq

我必须根据用户的请求运行多个作业。然而,其中只有一个是重要的。

所以我的MainWorker方法perform我称之为Worker1Worker2等不同的其他工作人员。

可以延迟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

我以后可能会有更多的子工作人员。我想知道这是一个好习惯还是有更好的方法来做到这一点。但是,我给自定义队列名称和优先级基于工作者。

1 个答案:

答案 0 :(得分:2)

Sidekiq有一些第三方附加组件。见这里:https://github.com/mperham/sidekiq/wiki/Related-Projects

可能对您有所帮助的是:SidekiqSuperworker