Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RabbitMQ定时消息和撤销功能_Rabbitmq_Message Queue_Rabbitmq Exchange - Fatal编程技术网

RabbitMQ定时消息和撤销功能

RabbitMQ定时消息和撤销功能,rabbitmq,message-queue,rabbitmq-exchange,Rabbitmq,Message Queue,Rabbitmq Exchange,是否可以使用RabbitMQ计划消息,并在满足某些条件时删除消息(计划处理的消息)? 我们需要调用外部服务来获取一些数据。调用是异步的。客户机调用服务器的API端点,并提及其所需的数据。服务器只是回复一个确认,它已经收到来自客户端的请求。在内部,服务器也开始处理客户机请求,它将调用客户机API端点,并使用从客户机返回的查询的实际响应 在客户端需要等待从服务器获得响应之前,有一个时间限制(30秒)。如果客户端在30秒内收到响应,则将继续执行。即使客户端在30秒内没有收到来自服务器的响应,它也将继续

是否可以使用RabbitMQ计划消息,并在满足某些条件时删除消息(计划处理的消息)? 我们需要调用外部服务来获取一些数据。调用是异步的。客户机调用服务器的API端点,并提及其所需的数据。服务器只是回复一个确认,它已经收到来自客户端的请求。在内部,服务器也开始处理客户机请求,它将调用客户机API端点,并使用从客户机返回的查询的实际响应

在客户端需要等待从服务器获得响应之前,有一个时间限制(30秒)。如果客户端在30秒内收到响应,则将继续执行。即使客户端在30秒内没有收到来自服务器的响应,它也将继续执行其他步骤

在客户机和服务器之间,每秒发生数千个独立事务(请求和响应)。客户机如何使用RabbitMQ以最有效的方式跟踪收到的请求和响应。 RabbitMQ插件RabbitMQ_delayed_message_交换是否可以用于这种情况,在这种情况下,客户端将推送队列中的新消息以及x-delaye头(30秒)?如果客户端在30秒之前收到服务器的响应,如何从队列中删除计划消息?

我将执行以下操作:

  • 使响应也通过RabbitMQ(使用)
  • 确保响应队列的名称也作为参数发送,该参数由某些exchange策略(路由密钥或使用头交换)用于路由响应队列
  • 为2设置具有正确策略的exchange
  • 在客户机->服务器队列中设置30秒
  • 在通常的情况下这是怎么回事

  • 客户端创建回复队列
  • 客户端将请求发送到服务器
  • 客户机从应答队列中消费
  • 服务器使用消息并将响应发布到回复队列
  • 超时会发生什么

  • 客户端创建回复队列
  • 客户端将请求发送到服务器
  • 客户机从应答队列中消费
  • 请求消息TTL触发器
  • RMQ将请求消息发送到回复队列
  • 客户端接收自己的请求而不是响应

  • 您是否同时控制客户端和服务器?服务器是一个外部服务,它会在一段时间后响应客户端请求。服务器无法控制。只有发起请求并接受服务器响应的客户端才在我们的控制之下。