5

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

所以我有一个方法,我称之为不同MainWorkerperform其他工人,比如Worker1Worker2

Worker1 和 Worker2 可以延迟,我需要优先 MainWorker。

所以这就是我的 perform 方法现在的样子

class MainWorker
 def perform( user_id ) 
   User.find( user_id ).main_task
   Worker1.perform_async( user_id ) 
   Worker2.perform_async( user_id ) 
 end
end

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

4

1 回答 1

2

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

可能对您有帮助的是:SidekiqSuperworker

于 2014-01-22T22:50:13.780 回答