我的apache点燃应用程序是用springboot构建的。 这是我的申请流程。
以下是我的代码。
ignite.message(ReceiverNode).remoteListen(topic, (nodeId, message) -> {
doSomething();
ignite.message(ignite.cluster().forNodeId(nodeId)).send(topic, reply);
return false;
});
ignite.message().localListen(null, (nodeId, message) -> {
if(message is terminate sign) {
context.close(); // springcontext
return false;
} else {
return true;
}
});
ignite.message(ReceiverNode).send(message, args);
但是在SenderNode收到终止签名并关闭spring上下文后,点燃节点不会终止。
有没有办法做到这一点?日Thnx。
答案 0 :(得分:1)
您应关闭Ignite实例以停止其工作。 但是我认为,如果你试图从消息监听器关闭Ignite,你将会陷入僵局。
尝试从单独的线程中执行此操作。将以下代码放入侦听器:
new Thread(ignite::close).start()
如果Ignite是Spring上下文的一部分,那么关闭上下文就足够了:
new Thread(context::close).start()