我使用ConcurrentMessageListenerContainer
并将auto commit设置为false来使用来自主题的消息并写入数据库。如果数据库关闭,我需要阻止容器在民意调查中处理当前记录,并且不要做下一个poll()
。我已经实现了DataSourceHealthIndicator
并且在将数据库状态检查为UP之后,我想再次重新启动我的容器来处理剩余的记录。
任何建议我如何停止处理剩余记录并停止容器,我尝试使用consumer.close()
。但它并没有阻止这个过程,并且不断抛弃消费者已经关闭。
答案 0 :(得分:1)
致电container.stop()
。如果您使用的是@KafkaListener
,请在侦听器容器注册表中调用stop()
,这将停止所有已注册的容器。
修改强>
自{2.1}发布以来automatically stopping the container的错误处理程序已经可用;在撰写本文时,当前版本为2.2.3。