java 异步发送消息_如何发送消息异步排队它们而不等待每个消息在春季回复amqp在java中使用rabbitmq?...

port="${rabbitmq.port}" host="${rabbitmq.host}" />

connection-factory="rabbitConnectionFactory" queue="${rabbitmq.import.queue}" routing-key="${rabbitmq.import.queue}"/>

connection-factory="rabbitConnectionFactory" concurrency="5">

这是简单的消息侦听器类,

public class ImportMessageListener {

@Override

public void onMessage(Message message) {

System.out.println("consumer output: " + message);

return message;

}

}

这是生产商(其是弹簧批次的itemWriter)

public class ImportItemWriter implements ItemWriter {

private AmqpTemplate template;

public AmqpTemplate getTemplate() {

return template;

}

public void setTemplate(AmqpTemplate template) {

this.template = template;

}

public void write(List extends T> items) throws Exception {

for (T item : items) {

Object reply = template.convertSendAndReceive(item.toString());

System.out.println("producer output: " + reply);

}

}

}

当我运行我的弹簧批作业,每个消息是一个接一个地发送和处理的,我的反应如下

consumer output: 1

producer output: 1

consumer output: 2

producer output: 2

consumer output: 3

producer output: 3

consumer output: 4

producer output: 4

consumer output: 5

producer output: 5

它shoudl发送5个信息并预约和5个消费者线程(并发= 5)应同时处理他们,因为它完成

So below should be the outout

consumer output: 1

consumer output: 2

consumer output: 3

consumer output: 4

consumer output: 5

producer output: 1

producer output: 2

producer output: 3

producer output: 4

producer output: 5

我不想生产者等待的答复应尽快回应第一条消息排队第二条消息。

我尝试使用convertAndSend,这使得它异步(不等待回复),但我如何在我的itemWriter中得到回复消息,就像我可以与convertSendAndReceive?

如果我改变我的模板配置

connection-factory="rabbitConnectionFactory" queue="${rabbitmq.import.queue}"

routing-key="${rabbitmq.import.queue}" reply-queue="${rabbitmq.import.reply.queue}">

,如果我用template.convertAndSend(item.toString());那我怎样才能得到回复信息?

我不能将我自己的消息处理程序附加到此侦听程序以获取应答消息,这是我们可以附加在消费者方面的方式。为了回复,它需要默认的RabbitmqTemplate处理程序。

2014-04-21

vishal

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值