我需要确保每个user_id不超过一个作业同时由25名工作人员工作以避免死锁。
我正在尝试sidekiq独特的工作,但是死锁会继续发生,因为它一直在尝试处理队列中的所有待处理作业,而不会在忙线上同时重复的params上查找user_id。 / p>
任何想法如何使用它? git页面几乎没有记录。
SidekiqUniqueJobs.config.unique_args_enabled = true
class WordCreator
include Sidekiq::Worker
sidekiq_options unique: true, unique_args: :args_filter, :queue => "critical"
def self.args_filter(user_id)
[user_id]
end
def perform(*args)
#retries = 100
#begin
work = Work.new(args.last)
end
end