From 835f3b6ec31295196f342ed08e3f79efb7d736eb Mon Sep 17 00:00:00 2001 From: Nicolas Florentin Date: Thu, 2 Nov 2023 13:54:40 +0100 Subject: [PATCH] (fix) replaces custom ServerLocale middleware with sidekiq i18n middleware --- CHANGELOG.md | 1 + config/initializers/sidekiq.rb | 11 +++++++---- lib/sidekiq/server_locale.rb | 14 -------------- 3 files changed, 8 insertions(+), 18 deletions(-) delete mode 100644 lib/sidekiq/server_locale.rb diff --git a/CHANGELOG.md b/CHANGELOG.md index ffe4a55c9..b73a51f57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - do not log Notifications#polling action anymore, by default, can be enable via env variable ENABLE_NOTIFICATIONS_POLLING_LOGGING=true - Fix a bug: api/products/index bug when sorting by amount - adds a rake task to regenerate invoices by ids (see maintenance.rake) +- Fix a bug: replaces custom ServerLocale middleware with sidekiq i18n middleware ## v6.2.0 2023 October 13 diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 517b06e02..d1d039577 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -3,7 +3,6 @@ require 'sidekiq' require 'sidekiq-scheduler' require 'sidekiq/middleware/i18n' -require 'sidekiq/server_locale' redis_host = ENV.fetch('REDIS_HOST', 'localhost') redis_url = "redis://#{redis_host}:6379" @@ -11,11 +10,17 @@ redis_url = "redis://#{redis_host}:6379" Sidekiq.configure_server do |config| config.redis = { url: redis_url } + # client_middleware is also configured in configure_server block + # because jobs running in the Sidekiq server can themselves push + # new jobs to Sidekiq, thus acting as clients + # see https://github.com/sidekiq/sidekiq/wiki/Middleware for more details config.client_middleware do |chain| + chain.add Sidekiq::Middleware::I18n::Client chain.add SidekiqUniqueJobs::Middleware::Client end config.server_middleware do |chain| + chain.add Sidekiq::Middleware::I18n::Server chain.add SidekiqUniqueJobs::Middleware::Server end @@ -36,11 +41,9 @@ Sidekiq.configure_client do |config| config.redis = { url: redis_url } config.client_middleware do |chain| + chain.add Sidekiq::Middleware::I18n::Client chain.add SidekiqUniqueJobs::Middleware::Client end - config.server_middleware do |chain| - chain.add FabManager::Middleware::ServerLocale - end end # Quieting logging in the test environment diff --git a/lib/sidekiq/server_locale.rb b/lib/sidekiq/server_locale.rb deleted file mode 100644 index ec968042a..000000000 --- a/lib/sidekiq/server_locale.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -# module definition -module FabManager::Middleware; end - -# Provides localization in workers -class FabManager::Middleware::ServerLocale - def call(_worker_class, job, _queue) - locale = job['locale'] || Rails.application.secrets.rails_locale - I18n.with_locale(locale) do - yield - end - end -end