Sidekiuniquejobs::UnknownLock: нет реализации для `lock: :all`

#ruby-on-rails #ruby #sidekiq

#ruby-on-rails #ruby #sidekiq

Вопрос:

Я реализовал sidekiq, в котором было выполнено несколько заданий, поэтому я хотел добавить уникальность default queue , для добавления уникальности к заданиям я использовал камень sidekiq-unique-jobs.

Я выполнил следующие шаги:

Gemfile

 gem 'sidekiq-unique-jobs'
  

А затем выполнить:

 bundle install 
  

Worker.rb

 Class Worker
  include Sidekiq::Worker

  sidekiq_options retry: 2, unique_across_queues: true, queue: 'default',lock: :until_executing

  def perform(args); 
   ....
   ....
  end
end
  

После добавления вышеуказанной конфигурации на мой рабочий я получаю сообщение об ошибке ниже:

Sidekiuniquejobs ::UnknownLock: нет реализации для lock: :all

Любое предложение будет оценено!

Комментарии:

1. кажется, в вашем проекте есть конфигурация, устанавливающая lock: :all

2. @PanKe Спасибо за быстрый ответ, о какой конфигурации вы говорите?

3. является lock: :until_executing единственной настройкой блокировки в вашем проекте? какие-либо другие sidekiq_options?

4. @PanKe Это только одна конфигурация блокировки в моем проекте.

5.хммм, судя по кодовой базе, в вашем проекте есть :all lock_type . github.com/mhenrixon/sidekiq-unique-jobs/blob/…

Ответ №1:

В вашем проекте есть другие, sidekiq_options которые устанавливают lock: :all . попробуйте grep в файлах вашего проекта и удалите его.