I'm trying to aply Redisson features for my project as message broker and I have a question. Is it possible to push Redisson to precceding recieved messages asynchronously? I have created a small example, sent 4 messages from different URL's. I expected, that Redisson proceeded them asynchronously, but it did it one by one.Here the implementation:
public class RedisListenerServiceImpl implements MessageListener<String> { private static final Logger log = LoggerFactory.getLogger(RedisListenerServiceImpl.class); private final ObjectMapper objectMapper = new ObjectMapper(); @Override public void onMessage(CharSequence channel, String stringMsg) { log.info("Message received: {}", stringMsg); MessageDto msg; try { msg = objectMapper.readValue(stringMsg, MessageDto.class); } catch (final IOException e) { log.error("Unable to deserialize message: {}", e.getMessage(), e); return; } try { //Do my stuff } catch (Exception e) { log.error("Unable to get service from factory: {}", e.getMessage(), e); } }}
And the config:
@Configurationpublic class RedisListenerConfig { @Autowired public RedisListenerConfig(RedissonClient redisClient, MessageListener redisListenerService, @Value("${redis.sub.key}") String redisSubKey) { RTopic subscribeTopic = redisClient.getTopic(redisSubKey); subscribeTopic.addListenerAsync(String.class, redisListenerService); }}