问题标签 [event-bus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
887 浏览

guava - Guava eventBus 在注销时报告“缺少事件处理程序”

尝试注销处理程序时,我从 Guava eventBus 收到以下错误。

已经回答了一个相同的问题,但根本原因是客户端编码错误。就我而言,我所做的一切都非常简单,但仍然遇到了问题。

客户端代码是一个 Apache Camel 处理器 bean,它使用多个线程(在这种情况下只有 2 个)运行。尽管 eventBus 被设计为线程安全的,但该错误仅在高流量时才出现,并且仅在 1000 次调用后才出现几次。

处理程序实例只存储骆驼交换,如果构造失败,我们会很快失败。

0 投票
1 回答
828 浏览

ruby-on-rails-4 - 在 Rails 控制器中触发模型回调操作

我正在尝试使用 Rails 中的服务器发送事件来进行实时流媒体处理。我有一个 Rake 任务侦听将记录添加到数据库的文件更改。添加后,我想将 SSE 发送到前端。

但是,模型不能将事件发送到前端,由控制器负责。如何告诉我的控制器一条新记录已添加到数据库中?

到目前为止我的(损坏的)解决方案:在模型中使用带有回调的EventBusafter_save来宣布更改并要求控制器侦听这些消息:

我认为我的请求在收到事件之前就结束了,这意味着它永远不会在取消订阅块中结束。这是正确的方法吗,如果是,我错过了什么?

0 投票
1 回答
17013 浏览

android - 奇怪的“无法发送事件”和“没有订阅者注册事件”问题

我已经尝试调试这个东西几个小时了,我真的看不到这里的问题。

这是我的主要活动。这里要查找的主要内容是ArrayList<Servico>, 作为Servico自定义对象。我创建了一个简单的“事件”类——ServicoActual它只有一个Servico对象引用(和一个构造函数/getter):

因此,当单击抽屉列表项时,我试图将相应的Servico(在ServicoActual“事件”内)传递给ServicoFragment,它应该将Servico' 的名称写入其TextView.

这是单击第一项 (0) 时发生的情况:

我做错了什么?

0 投票
1 回答
880 浏览

guava - EventBus google guava 关闭钩子

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

我正在寻找一些方法,例如在ActiveMQ 中实现关闭如何

代理是否应该安装一个关闭钩子,以便它可以在 JVM 终止时正确关闭自己

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

0 投票
1 回答
1556 浏览

android - 什么时候应该调用 removeStickyEvent(...)?

我在 Android 上使用 GreenRobot EventBus 库。

有人可以告诉我,调用 removeStickyEvent(...) 的最佳做法是什么?向上操作,按下后退按钮,...?

谢谢你们。

0 投票
2 回答
7310 浏览

java - 使用 Guava EventBus 的 Java 多线程

我正在使用番石榴事件总线。我有一个类似服务器的对象,它应该一直在运行,监听要发布到 b us 的事件。所以在一个junit测试(MyObject是被测类)中,我在它自己的线程中创建它来模拟这个并防止阻塞:

一切都很好,myObject 是在它自己的线程 Thread1 中创建的。然后,我在测试中将事件发布到事件总线:

我发现的奇怪的事情是,我在 MyObject 类中订阅的方法中的所有操作/日志记录都再次在主线程中执行。myObject 等待来自某些其他部分的响应,这会阻止我的测试,因为它在主线程中。为什么会这样?EventBus 或 Java 线程是不是我做错了什么?

0 投票
0 回答
57 浏览

java - AsynchEventBus、单例、线程和 Java

我是 Java 新手,并且对我正在开发的应用程序有所了解。这是我想要做的。

我有一个客户端/服务器设置,我使用 QuickServer 作为服务器。我把它弄好并且运行良好。它使用 "\r"\n" 逐行发送和接收命令,因此我的客户端位于

如果我不扩展 Thread,我的 GUI 会冻结,所以我认为 CommandHandler 需要它自己的线程。然而,问题是 AsyncEventBusSingleton。

当我在 CommandHandler 线程中调用这个类时,主线程上的其他类都没有接收到事件。如果我删除“同步”关键字,则接收/重复某些事件/生成错误。

如果不从 CommandHandler 抛出事件,一切似乎都可以正常工作,而是传递实例化 CommandHandler 的类的引用并让它调用 CommandHandler 的方法:

让客户端侦听某些命令并调度事件进行响应的最佳实践是什么?

0 投票
1 回答
6067 浏览

java - 如何使用 EventBus onEvent 方法?

我在我的 Android 应用程序中使用 EventBus。在我的 mainActivity 中,我有这个处理程序方法,它将实时数据发送到 EventBus,如下所示:

我正在使用 Fragments 类,我需要从处理程序接收消息。

我已经在 onCreateView 方法中注册了 Fragment 类,如下所示:

而且我有 onEvent 方法,该方法应该在有事件时调用。不幸的是,这个方法永远不会被调用。我认为这可能是被覆盖的方法,但似乎不是。

我需要做什么才能从 EventBus 中读取消息?

另外,在调试模式下,我在哪里可以看到正在创建的线程数?(我正在使用 Android Studio)

0 投票
1 回答
274 浏览

android - 让片段可以访问数据

我有一个应用程序,它正在检索主要活动中的数据,并在它可用时立即向所有片段发送事件。所以第一次开始它看起来像这样:

应用程序启动(片段在后台初始化)-> 提要下载-> 发送到片段的通知-> 片段初始化 UI

到目前为止一切都很好。但是,如果我要恢复应用程序怎么办。数据仍将被缓存,因此我将在应用程序恢复时立即发送事件,因此可能会发生我的片段甚至还没有准备好接收事件 -> 没有片段 UI 更新!或者在片段中触发和接收事件,但片段还没有准备好进行 UI 更新,因为它还没有膨胀布局 -> NullpointerException 或者片段接收到事件,但不再附加到活动 - > 另一个例外。有很多方法可以处理单个问题,但总体而言,它使架构复杂化了很多。

不知何故,我尝试了很多东西(玩弄 Otto 总线),但不知何故,我找不到任何架构可以使中央数据源可用于应用程序中的所有活动和片段。

如果您不想使用捆绑包,如何为您的片段提供数据?

0 投票
1 回答
1021 浏览

java - Akka 的事件总线是否保证消息顺序?

我想保持事件进入公共汽车的顺序。例如,如果 event1 然后 event2 进入总线,那么订阅的参与者将按该顺序获取它们。

问题是这样的顺序是否可以保证,无论是在集群还是在单节点参与者系统上。