サブスクライバーが実行されていない場合、イベントをチャネルに公開すると、そのイベントがドロップされることに気付きました。
そのため、チャンネルに何かを公開する前に、サブスクライバーが実行されているかどうかを確認したいですか?
パブリッシュされたイベントが脱落しないように、状態を識別する方法または別の方法。前もって感謝します
サブスクライバーがリッスンしているかどうかはわかりません。これは仕様によるものです。
http://redis.io/topics/pubsubを参照してください
[...] 送信者 (パブリッシャー) は、メッセージを特定の受信者 (サブスクライバー) に送信するようにプログラムされていません。むしろ、発行されたメッセージは、サブスクライバーが存在する可能性がある (存在する場合) という知識なしに、チャネルに特徴付けられます。
これは Redis に固有のものではありませんが、Pub/Sub 実装の背後にある基本原則です。
おそらくメッセージを確実に配信する方法を尋ねているでしょうが、繰り返しになりますが、Redis にはこのための組み込み機能がありません。
http://redis.io/topics/notifications
Redis Pub/Sub は発火後、現在のところ忘れてしまうため、アプリケーションがイベントの信頼できる通知を要求する場合、つまり、Pub/Sub クライアントが切断され、後で再接続する場合、この機能を使用する方法はありません。切断されたクライアントは失われます。
既存の機能の上に独自のメカニズムを実装したい場合があります。たとえば、新しいメッセージを PUB 側のリストにLPUSHし、クライアント側でそれらをRPOPし、キースペース通知を使用してそうするタイミングを知ることができます。このアプローチでは、リッスンしているクライアントがなくてもメッセージを失うことはありません。