Spring boot 如何使用Ignite消息通过Aapche Ignite终止Springboot应用程序?
我的ApacheIgnite应用程序是用springboot构建的。 这是我的申请流程Spring boot 如何使用Ignite消息通过Aapche Ignite终止Springboot应用程序?,spring-boot,ignite,Spring Boot,Ignite,我的ApacheIgnite应用程序是用springboot构建的。 这是我的申请流程 SenderNode向远程节点(ReceiverNode)发送一些消息 ReceiverNode执行某些操作并将终止符号(仅字符串“terminated”)发送到SenderNode 如果回复消息是终止符号,我想终止SenderNode 下面是我的代码 ignite.message(ReceiverNode).remoteListen(topic, (nodeId, message) ->
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上下文后,ignite节点并没有终止
有没有办法做到这一点?thnx.您应该关闭Ignite实例以停止其工作。 但是我认为,如果您试图关闭来自消息侦听器的Ignite,您将遇到死锁 试着从一个单独的线程执行它。将以下代码放入侦听器:
新线程(ignite::close).start()
如果Ignite是Spring上下文的一部分,那么关闭上下文就足够了:
新线程(上下文::close).start()