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