Pan*_*arg 2 java spring-rabbit spring-boot
我们的 Spring boot 应用程序中有rabbitMq 实现。这就是我们定义监听器的方式。但是,每当我们启动应用程序并且队列中有消息时,这些消息的消耗就会在应用程序完全启动之前开始。
@Component
@RabbitListener(queues = "hello")
public class RabbitMqReceiver {
Run Code Online (Sandbox Code Playgroud)
我想仅在服务器启动后启动侦听器。
您可以将autoStartup侦听器的属性设置为 false,这样它就不会自动启动。然后,您可以在准备好后启动(并稍后停止)它。
使用 来RabbitListenerEndpointRegistry获取对侦听器容器的引用。
@RabbitListener(id = "foo". ..., autoStartup = "false")\n\n...\n\n@Autowired\nRabbitListenerEndpointRegistry registry;\n\n...\n\nregistry.getListenerContainer("foo").start();\nRun Code Online (Sandbox Code Playgroud)\n\n请参阅参考手册。
\n\n\n\n容器管理\n 为注释创建的容器未在应用程序上下文中注册。
\n\ngetListenerContainers()您可以通过调用bean来获取所有容器的集合RabbitListenerEndpointRegistry。然后,您可以迭代此集合,例如,停止或启动所有容器或调用注册表本身的 Lifecycle 方法,这将调用每个容器上的操作。\n
registry.getListenerContainer("multi")您还可以通过使用单个容器的 id 来获取对单个容器的引用,例如,对于上面代码片段创建的容器,使用 getListenerContainer(String id)\xe2\x80\x89\xe2\x80\x94\xe2\x80\x89 。
| 归档时间: |
|
| 查看次数: |
4601 次 |
| 最近记录: |