Промежуточное ПО Sidekiq не регистрируется в development.log

Я хотел бы создать промежуточное программное обеспечение, которое выполняет поиск в очередях (обычно по умолчанию), если есть задания с такими же аргументами. Обычно я отправляю такие аргументы: выполнить (client_id, port_number)

Я хотел бы видеть, используя промежуточное программное обеспечение, есть ли уже client_id и port_number в очереди по умолчанию, и если есть, я просто возвращаюсь и регистрирую его в регистраторе.

Это то, что у меня есть (сейчас я хочу записать данные).

в config / initializers / sidekiq.rb у меня есть

require 'sidekiq/api'

#Sidekiq default host redis://localhost:6379
Sidekiq.configure_server do |config|
  config.redis = { url: 'redis://localhost:6379/12' }
end

Sidekiq.configure_client do |config|
  config.redis = { url: 'redis://localhost:6379/12' }
  config.client_middleware do |chain|
    chain.add ArgumentLogging
  end
end

Теперь «ArgumentLogging» должен быть классом, который будет регистрировать аргументы; но, честно говоря, я не знаю, куда добавить код промежуточного программного обеспечения.

Я добавил его в app / middleware / argument_logging.rb

module Sidekiq
    class ArgumentLogging
      # @param [String, Class] worker_class the string or class of the worker class being enqueued
      # @param [Hash] job the full job payload
      #   * @see https://github.com/mperham/sidekiq/wiki/Job-Format
      # @param [String] queue the name of the queue the job was pulled from
      # @param [ConnectionPool] redis_pool the redis pool
      # @return [Hash, FalseClass, nil] if false or nil is returned,
      #   the job is not to be enqueued into redis, otherwise the block's
      #   return value is returned
      # @yield the next middleware in the chain or the enqueuing of the job
      def call(worker_class, job, queue, redis_pool) 
        # return false/nil to stop the job from going to redis
        Rails.logger.info("Reading and logging #{queue} with arguments: #{job.inspect}")
        yield
      end
    end
end

Это то, что у меня есть до сих пор. Но я не вижу в моем файле "development.log" строку, похожую на "Чтение и ведение журнала # {queue} с аргументами: # {job.inspect}"

Кто-нибудь знает, как использовать Middleware и где мне разместить код выше? Я прочитал все о https://github.com/mperham/sidekiq/wiki/Middleware и других вопросах и блогах StackOverflow, но, похоже, я не могу понять, почему мой код не запускается.

Спасибо, и я с нетерпением жду вашего ответа.

Роб

Просто обновление здесь, версия SideKiq - 3.0.6

Rob 14.09.2018 21:03

Эта версия устарела примерно на 4 года. Все текущие документы не будут иметь значения.

Mike Perham 14.09.2018 22:18

И это Sidekiq, а не SideKiq. :-)

Mike Perham 14.09.2018 22:18

Привет @MikePerham, мне плохо. Извините, это версия: sidekiq (5.1.3). Не могли бы вы дать мне дополнительную информацию о том, как создать промежуточное ПО? Спасибо.

Rob 14.09.2018 22:39

Возможно, я нашел проблему, я буду держать вас в курсе на всякий случай .. В любом случае спасибо.

Rob 14.09.2018 22:50
drivy.engineering/use-sidekiq-middleware
Mike Perham 15.09.2018 00:14

У меня нет больше контента, чем вики-страница и это сообщение в блоге. Надеюсь, вы сможете понять, как все работает, и решить свою проблему.

Mike Perham 15.09.2018 00:24

Привет, Марк, да, в пятницу я смог начать регистрацию событий. Я прочитаю блог, который вы прислали сегодня. Спасибо.

Rob 17.09.2018 09:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
8
636
0

Другие вопросы по теме