Как мы обсуждали, я пытаюсь воспользоваться этой возможностью, но столкнулся с проблемой, так как кастомизирую:
/config/initializers/100-sidekiq.rb
Вот мой измененный код. Я:
- Добавляю каждому заданию доступный атрибут количества попыток перезапуска, который использую в плагине для изменения логики рабочего процесса в зависимости от того, сколько раз задание перезапускалось
В этом файле я вношу следующие изменения:
- Создаю собственный класс Middleware для получения значения
- Добавляю этот класс в цепочку, чтобы он был включен
require "sidekiq/pausable"
require "sidekiq/discourse_event"
require "sidekiq_logster_reporter"
require "sidekiq_long_running_job_logger"
require "mini_scheduler_long_running_job_logger"
module Sidekiq::Middleware::Server #<-- НОВОЕ
class SetRetryCountMiddleware
def call(worker, job, queue)
worker.retry_count = job["retry_count"] if worker.respond_to?(:retry_count=)
yield
end
end
end
Sidekiq.configure_client { |config| config.redis = Discourse.sidekiq_redis_config }
Sidekiq.configure_server do |config|
config.redis = Discourse.sidekiq_redis_config
config[:skip_default_job_logging] = false
config.server_middleware do |chain|
chain.add Sidekiq::Pausable
chain.add Sidekiq::Middleware::Server::SetRetryCountMiddleware #<-- НОВОЕ
chain.add Sidekiq::DiscourseEvent
end
В данный момент я реализую это с помощью скрипта редактирования файлов в app.yml, используя sed.
Это нарушает чистоту репозитория, поэтому я не могу использовать bundled скомпилированные ассеты.
Есть ли какие-либо предложения, как внести эти изменения из плагина?