5
私は、Redisのpubsubチャンネルの加入者として無限に聞くJedisクライアントを作成するというコンセプトに苦労しています。jedis pubsubとタイムアウト:加入者として無限に聴くには?
私の問題は、しばらくしばらくするとサーバーが停止することですサイレントに応答する。これは、私が購読しているJedisクライアントでタイムアウトが発生したためです。
これは本当らしいでしょうか?もしそうなら、タイムアウトしないようにこの特定のJedisクライアントを設定する方法はありますか? (他のJedispoolsは一部のグローバルタイムアウトの影響を受けませんが) また、達成しようとしている別の(ベストプラクティス)方法がありますか?
これは、(表示のために取り除か/変更)、私のコードです:
は、Webサーバの起動時に実行:
new Thread(AkkaStarter2.getSingleton()).start();
AkkaStarter2.java
private Jedis sub;
private AkkaListener akkaListener;
public static AkkaStarter2 getSingleton(){
if(singleton==null){
singleton = new AkkaStarter2();
}
return singleton;
}
private AkkaStarter2(){
sub = new Jedis(REDISHOST, REDISPORT);
akkaListener = new AkkaListener();
}
public void run() {
//blocking
sub.psubscribe(akkaListener, AKKAPREFIX + "*");
}
class AkkaListener extends JedisPubSub {
....
public void onPMessage(String pattern, String akkaChannel,String jsonSer) {
...
}
}
ありがとうございます。