Работать с двумя отдельными экземплярами Redis с Sidekiq?

Добрый день,

У меня есть два отдельных, но связанных приложений. У них обоих должны быть свои собственные фоновые очереди(читай: отдельный Sidekiq & Редис процессов), Однако я'я хотел бы иногда иметь возможность продвигать рабочие места наapp2с очереди из.app1

С точки зрения простой очереди / push это было бы легко сделать, еслиapp1 не было существующего стека Sidekiq / Redis:

# In a process, far far away

# Configure client 
Sidekiq.configure_client do |config|
  config.redis = { :url => 'redis://redis.example.com:7372/12', :namespace => 'mynamespace' }
end

# Push jobs without class definition 
Sidekiq::Client.push('class' => 'Example::Workers::Trace', 'args' => ['hello!'])

# Push jobs overriding default's 
Sidekiq::Client.push('queue' => 'example', 'retry' => 3, 'class' =>     'Example::Workers::Trace', 'args' => ['hello!'])

Однако, учитывая, что я бы уже назвалSidekiq.configure_client а такжеSidekiq.configure_server отapp1, там'Возможно, это шаг между тем, где что-то должно произойти.

Очевидно, я мог просто взять код сериализации и нормализации прямо из Sidekiq и вручную нажать на 'app2Очередь повторения, но это похоже на хрупкое решение. Я'я хотел бы иметь возможность использоватьClient.push функциональность.

Я полагаю, что мое идеальное решение было бы что-то вроде:

SidekiqTWO.configure_client { remote connection..... } SidekiqTWO::Client.push(job....)

Или даже:

$redis_remote = remote_connection.....

Sidekiq::Client.push(job, $redis_remote)

Очевидно, немного шутливо, но этоЭто мой идеальный вариант использования.

Спасибо! Я

Ответы на вопрос(3)

Ваш ответ на вопрос