ドキュメントによるとRedisMessageListnerContainer
-
public void addMessageListener(MessageListener リスナー、トピックトピック) :
(潜在的に実行中の) コンテナーにメッセージ リスナーを追加します。コンテナーが実行中の場合、リスナーはできるだけ早くメッセージの受信 (マッチング) を開始します。
上記の引用は、リスナーの準備ができているかどうか、またはサブスクリプションがまったく成功しているかどうかを知る実際の方法がないことを示しているようです。
では、チャンネルを公開してサブスクライブした場合、公開を開始できるようになるまでどのくらい待つ必要がありますか? 私のテストでは、単純に実行します
container.addMessageListener(listener, topic);
for(int i = 0; i < 10; i++) {
template.publish(topic, content);
}
私自身が公開した最初の 3 ~ 5 件のメッセージを受信していないことを意味します。
に頼らずにこれを回避するにはどうすればよいThread.sleep()
ですか? 接続の失敗/成功などについて通知を受けることは可能ですか?