إجراء تعديلات على تهيئة التهيئة الأولية

كما نوقش، أحاول الاستفادة من هذا ولكني واجهت عقبة، لأنني أقوم بتخصيص:

/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.

هذا يكسر صحة المستودع، لذلك لا يمكنني استخدام الأصول المجمعة المضمنة.

أي اقتراحات حول كيفية إجراء هذه التعديلات من إضافة؟

إعجاب واحد (1)

هل الموضع المحدد في المكدس مهم؟ لقد جربت هذا في ملف plugin.rb وبدا أنه يضيف الوسيط :crossed_fingers:

class BreakEverythingMiddleware
  def call(worker, job, queue)
    puts "The middleware worked!"
    raise "THE MIDDLEWARE WORKED"
  end
end

Sidekiq.default_configuration.server_middleware { |chain| chain.add BreakEverythingMiddleware }
إعجاب واحد (1)

لا ينبغي أن تفعل!

اقتراح رائع، سأجرب ذلك!

إعجابَين (2)