【问题标题】:DefaultMessageListenerContainer's "isActive" vs "isRunning"DefaultMessageListenerContainer 的“isActive”与“isRunning”
【发布时间】:2017-04-10 16:07:12
【问题描述】:

正如标题中所说,我需要知道这两种DefaultMessageListenerContainer 方法之间的主要区别是什么:

在我们的官方文档中:

这很微妙,谢谢。

【问题讨论】:

    标签: spring message-queue lifecycle spring-jms


    【解决方案1】:

    active 仅表示容器已“准备好”启动,参见initialize() - 它是从afterPropertiesSet() 调用的;当容器为destroy()ed 时,它会被重置。

    running 表示它已被 start() 编辑 - 并且实际上会消耗消息。

    【讨论】:

    • 如果我想关闭listner,有什么更好的方法。将 only running 设置为 false 或将 active 和 running 设置为 false。
    • start()/stop() 设置/重置running; initialize()/shutDown() 设置/重置active。这取决于你的要求是什么。 stop() 只是阻止消费者获取新消息,但消费者仍然存在。 shutDown() 关闭消费者。大多数人拨打stop + shutdown 然后initialize + start 重新启动。但如果你只是想暂时停止消费,stop/start 是你所需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    相关资源
    最近更新 更多