我需要确保任何25个工人中的任何一个人同时只能处理一个特定用户ID的作业,以避免死锁。
我尝试过Sidekiq的唯一任务,但由于它继续尝试处理队列中所有未完成的作业而没有查找参数中的user_id,导致死锁不断发生。
谢谢
class MyWork
include Sidekiq::Worker
sidekiq_options :queue => "critical", unique: true,
unique_args: ->(args) { [ args.user_id ] }
def perform(work_params)