Discuss / Java / QueueMessageListener 优化,参考评论

QueueMessageListener 优化,参考评论

Topic source

Best of Me

#1 Created at ... [Delete] [Delete and Lock User]
@Component
@RabbitListener(queues = { QueueMessageListener.QUEUE_APP, QueueMessageListener.QUEUE_MAIL,
		QueueMessageListener.QUEUE_SMS })
public class QueueMessageListener {

	final Logger logger = LoggerFactory.getLogger(getClass());

	static final String QUEUE_MAIL = "q_mail";
	static final String QUEUE_SMS = "q_sms";
	static final String QUEUE_APP = "q_app";

	@RabbitHandler
	public void onRegistrationMessage(Message messageOriginal, RegistrationMessage message) throws Exception {
		String queueName = messageOriginal.getMessageProperties().getConsumerQueue();
		logger.info("queue {} received registration message: {}", queueName, message);
	}

	@RabbitHandler
	public void onLoginMessage(Message messageOriginal, LoginMessage message) throws Exception {
		String queueName = messageOriginal.getMessageProperties().getConsumerQueue();
		logger.info("queue {} received login message: {}", queueName, message);
	}
  • 监听器@RabbitListener合并队列为数组
  • 加了方法参数org.springframework.amqp.core.Message 对象,用来获取队列名称
  • @RabbitHandler用来按消息类别处理Queue(避免发生如onRegistrationMessage监听器捕获来自LoginMessage的消息)

  • 1

Reply