jedis pubsub и таймауты: как бесконечно слушать как подписчик?

Я борюсь с концепцией создания 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) {
          ...
        }
    }

Спасибо.

5
задан Geert-Jan 22 December 2011 в 20:41
поделиться