Conforme discutido, estou tentando aproveitar isso, mas encontrei um obstáculo, pois estou personalizando:
/config/initializers/100-sidekiq.rb
Aqui está meu código alterado, estou:
- Dando a cada job um atributo de contagem de retentativas acessível que estou usando em um plugin para alterar a lógica do fluxo de trabalho dependendo do número de vezes que um job foi retentado.
No arquivo, estou alterando-o para:
- Criar uma classe Middleware personalizada para recuperar o valor
- Adicionar a classe à cadeia para que ela seja incluída
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 # <-- NOVO
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 # <-- NOVO
chain.add Sidekiq::DiscourseEvent
end
Atualmente, estou conseguindo isso com um script de edição de arquivo em app.yml usando sed.
Isso quebra a integridade do repositório, então não posso usar os assets compilados incluídos.
Alguma sugestão sobre como fazer essas modificações a partir de um plugin?