Comme discuté, j’essaie de profiter de cela, mais j’ai rencontré un problème, car je personnalise :
/config/initializers/100-sidekiq.rb
Voici mon code modifié, je suis :
- Donner à chaque tâche un attribut de nombre de nouvelles tentatives accessible que j’utilise dans un plugin pour modifier la logique du flux de travail en fonction du nombre de fois qu’une tâche a été retentée.
Dans le fichier que je modifie, je le modifie pour
- Créer une classe Middleware personnalisée pour récupérer la valeur
- Ajouter la classe à la chaîne afin qu’elle soit incluse
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 # <-- NOUVEAU
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 # <-- NOUVEAU
chain.add Sidekiq::DiscourseEvent
end
Actuellement, j’y parviens avec un script de modification de fichier dans app.yml utilisant sed.
Cela brise l’intégrité du dépôt, je ne peux donc pas utiliser les actifs compilés groupés.
Des suggestions sur la façon de apporter ces modifications à partir d’un plugin ?