【问题标题】:EventBus google guava shutdown hookEventBus google guava 关闭钩子
【发布时间】:2014-07-14 15:50:48
【问题描述】:

目前我在我的应用程序中使用 guava EventBus 方法。侦听器尝试做一些工作,如果失败,事件应该返回总线并重新发送。
我的问题是:如果我的应用程序出现故障(执行关闭)怎么办?它会在总线上发送剩余的事件吗?

我正在寻找一些方法,例如在ActiveMQ shut down hoow中实现

代理是否应该安装一个关闭钩子以便它可以正确关闭 自己被 JVM 杀死

不幸的是,我没有在 EventBus guava 中找到类似的东西。

【问题讨论】:

    标签: guava shutdown-hook event-bus


    【解决方案1】:

    标准 Guava EventBus 是同步的,它没有内部 Thread 或类似的东西。如果调用post(Object event) 的线程死亡,EventBus 停止传递事件(因为它使用调用者的线程)。

    另一方面,AsyncEventBus 在构造期间采用Executor(来自java.util.concurrent 包),用于调度事件。在这种情况下,这取决于您使用的执行器实现。例如,ThreadPoolExecutor 需要调用 shutdownNow() 才能停止传递消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-29
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多