Подписка была отписана - PullRequest
       5

Подписка была отписана

0 голосов
/ 20 сентября 2018

Иногда, когда я пытаюсь установить соединение с pubsub, я получаю сообщение об ошибке: «Подписка отменена и больше не может использоваться».

Чтобы решить эту проблему, мне нужно перезапуститьвеб-приложение.

public GideResponse getResponsePubSub(long petitionId, GidePetitionList<GideBackendPetition> petitionList) {
    CountDownLatch latch = new CountDownLatch(1);
    GideResponseReceiver receiver = new GideResponseReceiver(latch);
    MessageListenerAdapter adapter = new MessageListenerAdapter(receiver);
    this.container.addMessageListener(adapter, new PatternTopic(String.valueOf(petitionId)));
    this.redisTemplateBackend.opsForList().rightPush(PETITIONS_QUEUE_NAME, petitionList);
    latch = receiver.getLatch();

    try {
        latch.await(40000L, TimeUnit.MILLISECONDS);
    } catch (InterruptedException var8) {
        logger.error("The countdown latch for redis pub sub was interrupted", var8);
        var8.printStackTrace();
        throw new InternalCommunicationException();
    }

    if(latch.getCount() == 1L) {
        logger.error("The pub sub request has not been processed, message was not received");
        this.container.removeMessageListener(adapter);
        throw new InternalCommunicationException();
    } else {
        this.container.removeMessageListener(adapter);
        return receiver.getGideResponse();
    }
}

Есть ли какой-либо метод в библиотеке spring-data-redis для решения такого рода проблем?

Я использую 'org.springframework.data:весна-данных Redis: 1.8.9.RELEASE '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...