Apache Ignite:Java 中 fire/emit 用户定义事件的最佳实践是什么?
Apache Ignite: What is best practice to fire/emit user defined events in Java?
我想发出一个用户定义的 Ignite 事件,但除了使用非 API 方法的 Ignite 源之外,我没有找到任何示例或实现。
谁能解释一下如何做到这一点?
TIA
已更新最新回复:
有一组预定义的 EventTypes
,如果不重新编译源代码,您就无法添加新的或在 Ignite 的内部嵌入自定义逻辑,从我的角度来看,这太复杂且不切实际。
作为替代方案,您可以使用 Ignite Messaging.
Ignite ignite = Ignition.ignite();
IgniteMessaging rmtMsg = ignite.message(ignite.cluster().forRemotes());
// Add listener for ordered messages on all remote nodes.
rmtMsg.remoteListen("MyOrderedTopic", (nodeId, msg) -> {
System.out.println("Received ordered message [msg=" + msg + ", from=" + nodeId + ']');
return true; // Return true to continue listening.
});
// Send ordered messages to remote nodes.
for (int i = 0; i < 10; i++)
rmtMsg.sendOrdered("MyOrderedTopic", Integer.toString(i), 0);
检查these examples and the documentation。
重新阅读文档后,我发现了一个有用的提示。
recordLocal(Event evt)
的简要说明:
浏览详细信息后,我认出了提示(标记为红色)
因此对于本地事件,“记录”意味着“存储和发布”。
这有点误导......但是,嘿,它有效:-)
我想发出一个用户定义的 Ignite 事件,但除了使用非 API 方法的 Ignite 源之外,我没有找到任何示例或实现。
谁能解释一下如何做到这一点?
TIA
已更新最新回复:
有一组预定义的 EventTypes
,如果不重新编译源代码,您就无法添加新的或在 Ignite 的内部嵌入自定义逻辑,从我的角度来看,这太复杂且不切实际。
作为替代方案,您可以使用 Ignite Messaging.
Ignite ignite = Ignition.ignite();
IgniteMessaging rmtMsg = ignite.message(ignite.cluster().forRemotes());
// Add listener for ordered messages on all remote nodes.
rmtMsg.remoteListen("MyOrderedTopic", (nodeId, msg) -> {
System.out.println("Received ordered message [msg=" + msg + ", from=" + nodeId + ']');
return true; // Return true to continue listening.
});
// Send ordered messages to remote nodes.
for (int i = 0; i < 10; i++)
rmtMsg.sendOrdered("MyOrderedTopic", Integer.toString(i), 0);
检查these examples and the documentation。
重新阅读文档后,我发现了一个有用的提示。
recordLocal(Event evt)
的简要说明:
浏览详细信息后,我认出了提示(标记为红色)
因此对于本地事件,“记录”意味着“存储和发布”。 这有点误导......但是,嘿,它有效:-)