繁体   English   中英

我们可以仅在特定时间之间限制spring boot rabbitmq消息处理吗?

[英]Can we restrict spring boot rabbitmq message processing only between specific timings?

使用Spring boot @RabbitListener,我们能够处理AMQP消息。 每当消息发送到队列中时,其立即发布到目标交换。 使用@RabbitListener,我们可以立即处理消息。 但是我们只需要在特定的时间(例如1AM到6AM)之间处理消息。 如何实现呢?

首先,您可以查看RabbitMQ的延迟交换功能: https : //docs.spring.io/spring-amqp/docs/current/reference/html/#delayed-message-exchange

因此,通过这种方式,在生产者端,您应该确定在将消息路由到主交换机以进行实际消费之后,应将消息延迟多长时间。

另一种方法是查看Spring Integration及其Delayer组件: https : //docs.spring.io/spring-integration/docs/5.2.0.BUILD-SNAPSHOT/reference/html/messaging-endpoints.html#delayer

这样,您将使用来自RabbitMQ的消息,但会在目标应用程序逻辑中延迟它们。

还有另一种方式,我可以像start()/stop()监听容器并根据您的时序要求进行消费。 这样,消息将一直保留在RabbitMQ中,直到您启动侦听器容器为止: https : //docs.spring.io/spring-amqp/docs/current/reference/html/#containerAttributes

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM