为什么使用containerGroup阻止我的其他侦听器正常工作?

约翰·D

我的应用程序正在侦听几个主题。其中一些是压缩主题,用于将一些数据加载到内存中。

我想先加载这些数据,所以我使用SmartLifecycle在其他容器之前手动启动了那些容器。

效果很好,但为简单起见,我尝试使用containerGroup

@KafkaListener(id = "myId", containerGroup = "compacted", ...)

然后在SmartLifecycle bean中,我使用了:

        Collection<MessageListenerContainer> compactedListenerContainers = applicationContext.getBean("compacted", Collection.class);

但是一旦完成,“启动”方法完成后,其他容器将永远不会启动。

如果我将这一行替换为:

Collection<MessageListenerContainer> compactedListenerContainers = Arrays.asList(registry.getListenerContainer("myId"));

它的工作。

知道为什么为容器组获取bean会阻止所有其他侦听器工作吗?知道所有其他@KafkaListeners只是由定义的:

@KafkaListener(topics = "myTopic")

编辑

经过进一步调查,该问题与KafkaListenerEndpointRegistry有关。

如果SmartLifeCycle bean是使用“ KafkaListenerEndpointRegistry”作为依赖项创建的,则该应用程序正在运行。即使我根本不使用注册表。

但是,如果在没有此注册表的情况下创建了SmartLifeCycle bean,则应用程序将失败。

加里·罗素

您需要显示您的集装箱工厂。

我猜您已经autoStartup设置为false,因为您是手动启动它们的。

所以其他人也不会开始。由于您要在加载压缩主题之后启动它们,因此只需调用start()端点注册表,它将启动其他注册表。

或者,您可以将其他人放在另一个人中containerGroup

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么电子邮件跟踪侦听器会阻止其他侦听器正常工作?

为什么我不能从事件侦听器调用方法,而不能在类中的其他地方调用方法?

为什么其他不能正常工作?

为什么Amazon SES邮件模拟器反弹无法正常工作?(我是否缺少标题或其他内容?)

为什么我应该在Laravel中使用事件和侦听器

为什么在Android侦听器上使用WeakReference?

什么时候应该使用匿名类来实现侦听器,何时可以选择其他实现?

为什么侦听器列表是列表?

LineChart侦听器无法正常工作,或者我错过了某些事情

为什么我不能为正在绘制的图像设置动画并使用关键侦听器制作动画?

OnClick以及侦听器无法正常工作

JavaScript全局错误侦听器无法正常工作

Html 类事件侦听器无法正常工作

邀请侦听器无法正常工作4.2

回调侦听器无法正常工作

为什么按键侦听器有时只能工作

有什么想法为什么我的PayPal IPN侦听器自发开始引发错误?

使用其他侦听器获取RecylerView物品位置

在其他文件上使用Discord的“消息”侦听器

scrollIntoView()防止其他侦听器触发

禁用JavaScript中的其他按键侦听器

为什么我的导航栏无法在Google Chrome浏览器中正常显示,但可以在其他浏览器上使用

模块是否阻止了使用DOMContentLoaded侦听器的需要?

为什么我的文本更改侦听器不起作用?

javafx TableView:当我降序排序时,为什么 sortOrder 侦听器不触发?

为什么我的 WASAPI 侦听器即使在没有播放的情况下也会触发?

为什么侦听器没有绑定到我分配给它的对象?

为什么我的匿名类操作侦听器不能退出Java GUI?

为什么我的菜单侦听器不响应第一次点击?