Rumah  >  Soal Jawab  >  teks badan

java - spring-amqp中消费者同步回复消息有没有更简单的方法?

amqp中使用
provider使用sendAndReceive可以等待消费者取得返回值
consumer使用receiveAndReply,并添加监听器,可以取得provider的message处理并回复

当消息是异步时,直接注册监听器实现onMessage()方法即可。
但是onMessage()方法的返回值是void

那么如果要实现provider同步的功能
consumer除了

while(true){
    amqpTemplate.receiveAndReply(queueName,new Callback(Message message){
         dosomething;
         return "result";
    })
}

这种方式之外 还有别的使用方法吗?

ringa_leeringa_lee2716 hari yang lalu489

membalas semua(2)saya akan balas

  • 怪我咯

    怪我咯2017-04-18 10:28:20

    Mengapa kita perlu menunggu nilai pulangan?
    A -> B
    A <- B
    A menghantar mesej kepada B, dan B menerima mesej selepas pemprosesan selesai. B menghantar mesej (resit) kepada A apabila A menerima hasil pemprosesan mesej. AB ialah Producer dan juga Consumer.

    Jika MQ masih perlu melakukan penyegerakan dan operasi lain, bukankah lebih mudah untuk menggunakan MQ secara terus dan menggunakan antara muka?

    balas
    0
  • 阿神

    阿神2017-04-18 10:28:20

    Kemudian anda mahu pembekal menyekat sehingga ia menerima nilai pulangan daripada pengguna?
    Ini tidak disyorkan Jika anda mesti menerima secara serentak, anda boleh membuat kedua-dua pembekal dan pengguna berbenang tunggal.

    balas
    0
  • Batalbalas