请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

消费者的关闭问题

老师您好,消费者的关闭可以通过consumer.close();方法来关闭,但是在消费者一直运行的情况下,怎么从外部再获取到该consumer对象执行其close方法将其关闭呢?或者是用别的什么关闭方法?

正在回答 回答被采纳积分+3

1回答

Allen 2020-04-24 10:57:25

最简单的肯定是提供个接口了, 不过这个问题的目标是什么呢

1 回复 有任何疑惑可以回复我~
  • 提问者 乃好 #1
    大致就是有个按钮,希望用户点击按钮就可以关闭kafka消费者,终于是获取到了消费者对象,可是执行其close的方法时,会报错,提示的意思是说消费者不允许从其他的线程去关闭它,哪个线程启动的,就必须哪个线程关闭,然后又查了一下,使用wakeup去关闭,但看了下官方api对wakeup的说明,其中明确提到不要使用该方法来关闭消费者?
    回复 有任何疑惑可以回复我~ 2020-04-24 11:15:40
  • Allen 回复 提问者 乃好 #2
    没有特别理解你的场景, 不过我们目前是单个线程创建Consumer, 消费完成消息以后就直接关闭了。 为什么会出现其他线程关闭另一个线程的Consumer的情况呢
    回复 有任何疑惑可以回复我~ 2020-04-24 14:28:24
  • 提问者 乃好 回复 Allen #3
    嗯谢谢老师,我们做的是一个ETL工具,所以系统比较复杂,现在这个关闭的问题已经解决了,我不直接调用它的close方法,而是将while(true)中的判断条件换成了一个flag,要关闭的时候把flag设为false,自然就会退出循环了,这时候就可以再执行到close方法将其关闭了
    回复 有任何疑惑可以回复我~ 2020-04-24 16:03:22
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号