#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 в файлах вашего проекта и удалите его.