2017-09-28 1 views
1

Ich habe Reihe von Anwendungen: my.com, a.my.com, b.my.com ..Schienen und ActionCable. Mehrere Umgebungen mit einer redis Server

Alle von ihnen mit verschiedenen Datenbanken einen redis Server verwenden url: redis://localhost:6379/1, url: redis://localhost:6379/2 ..

Aber Broadcast-Nachrichten gehen zu jeder App. Das ist wegen https://redis.io/topics/pubsub:

Pub/Sub hat keine Beziehung zum Schlüsselraum. Es wurde gemacht, um es auf keiner Ebene zu stören, einschließlich Datenbanknummern. Publishing zu db 10 wird von einem Teilnehmer zu db 1. zu hören Wenn Sie Scoping irgendeine Art benötigen, als Präfix der Kanäle mit dem Namen der Umgebung

Dort wird das gleiche Problem https://github.com/rails/rails/issues/27224 in Rails-Repository war.

Ich sehe nur mehrere Möglichkeiten:

  1. Verwenden Sie separate redis Server für jede App
  2. Irgendwie Präfix steam_from in #subscribed: stream_from("#{some_config.or_env.channel_prefix}_#{user.id}")
  3. Verwenden Sie eine andere Anbieter (nicht Redis)

Am Ich vermisse etwas? Gibt es eine bessere und einfachere Lösung?

Antwort

0

Oh, ich habe diesen Teil über channel_prefix verpasst. Wenn wir auf 5.1 migrieren, verwenden wir diese Funktion.