Я борюсь с концепцией создания Jedis-клиента, который бесконечно слушает как подписчик на канал pubsub Redis и обрабатывает сообщения, когда они приходят.
Моя проблема заключается в том, что через некоторое время бездействия сервер перестает молча отвечать. Я думаю, это происходит из-за тайм-аута в клиенте Jedis, на который я подписываюсь.
Так ли это на самом деле? Если да, то есть ли способ настроить этот конкретный клиент Jedis без тайм-аута? (В то время как на другие джедиспулы не влияет некоторый глобально установленный тайм-аут) В качестве альтернативы, есть ли другой (передовой) способ того, чего я пытаюсь достичь?
Это мой код (изменен / удален для отображения):
выполняется при запуске веб-сервера:
новый поток (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) {
...
}
}
Спасибо.