Как заставить одного подписчика обрабатывать сообщение (рассмотреть возможность наличия более одного) в Radisson (клиент RedisJava) - PullRequest
0 голосов
/ 30 апреля 2019

В моем проекте я создал простую тему pub / sub с помощью radisson (https://github.com/redisson/redisson). Publisher опубликует некоторое сообщение, и на разных машинах будет работать несколько подписчиков. Когда я публикуюсь, все подписчикиполучают сообщение. Но я хочу, чтобы кто-либо из подписчиков обработал сообщение, т. е. если один обрабатывает сообщение, другие должны просто игнорировать его. Возможно ли это с Radisson?

LISTENER:

RTopic topic = redisson.getTopic("topic2");
topic.addListener(Person.class, new MessageListener<Person>() {
    @Override
    public void onMessage(CharSequence charSequence, Person person) {
        System.out.println("PERSON : "+person.toString());
    }
});

ИЗДАТЕЛЬ:

 Person person = new Person("anyName","female");
 RedissonClient redisson = Redisson.create();
 RTopic topic = redisson.getTopic("topic2");
 topic.publish(person);

Можно ли установить блокировку или что-то такое, чтобы ее слушал только один подписчик. Поддержат ли это другие инструменты.

...