Vous utilisez un pool de connexions global distinct pour votre code d'application. Mettez quelque chose comme ceci dans votre initialiseur redis.rb :
require 'connection_pool'
REDIS = ConnectionPool.new(size: 10) { Redis.new }
Maintenant, n'importe où dans votre code d'application, vous pouvez faire ceci :
REDIS.with do |conn|
# some redis operations
end
Vous aurez jusqu'à 10 connexions à partager entre vos collaborateurs puma/sidekiq. Cela conduira à de meilleures performances puisque, comme vous le notez correctement, vous n'aurez pas tous les threads qui se battent sur une seule connexion Redis.
Tout cela est documenté ici :https://github.com/mperham/sidekiq/wiki/Advanced-Options#connection-pooling