Come discusso, sto cercando di sfruttare questo, ma ho riscontrato un problema, perché sto personalizzando:
/config/initializers/100-sidekiq.rb
Ecco il mio codice modificato, sto:
- Assegnando a ogni job un attributo
retry countaccessibile che sto utilizzando in un plugin per modificare la logica del flusso di lavoro a seconda del numero di volte che un job è stato ritentato.
Nel file che sto modificando, lo sto modificando per:
- Creare una classe Middleware personalizzata per recuperare il valore
- Aggiungere la classe alla catena in modo che sia inclusa
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 # <-- NEW
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 # <-- NEW
chain.add Sidekiq::DiscourseEvent
end
Attualmente lo sto ottenendo con uno script di modifica del file in app.yml usando sed.
Questo compromette l’integrità del repository, quindi non posso utilizzare gli asset compilati inclusi.
Qualsiasi suggerimento su come apportare queste modifiche da un plugin?