كما نوقش، أحاول الاستفادة من هذا ولكني واجهت عقبة، لأنني أقوم بتخصيص:
/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.
هذا يكسر صحة المستودع، لذلك لا يمكنني استخدام الأصول المجمعة المضمنة.
أي اقتراحات حول كيفية إجراء هذه التعديلات من إضافة؟