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

aBa*_*boy 5 redis ruby-on-rails-3 ruby-on-rails-3.2 sidekiq

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

所以我有一个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
Run Code Online (Sandbox Code Playgroud)

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

cha*_*erx 2

Sidekiq 有一些第 3 方附加组件。请参阅此处: https: //github.com/mperham/sidekiq/wiki/Related-Projects

可能对您有帮助的一个是:SidekiqSuperworker