java - spring-amqp中消费者同步回复消息有没有更简单的方法?
ringa_lee
ringa_lee 2017-04-18 10:26:20
0
2
514

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_lee
ringa_lee

ringa_lee

répondre à tous(2)
刘奇

Pourquoi devons-nous attendre la valeur de retour ?
A -> B
A <- B
A envoie un message à B et B reçoit le message une fois le traitement terminé. B envoie un message (reçu) à A lorsque A reçoit le résultat du traitement du message. AB c'est Producer et aussi Consumer.

Si MQ doit encore effectuer des synchronisations et d'autres opérations, ne serait-il pas plus facile d'utiliser MQ directement et d'utiliser l'interface ?

阿神

Ensuite, vous souhaitez que le fournisseur bloque jusqu'à ce qu'il reçoive la valeur de retour du consommateur ?
Ceci n'est pas recommandé. Si vous devez recevoir de manière synchrone, vous pouvez créer un seul thread pour le fournisseur et le consommateur.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!