gpt4 book ai didi

java - 在 java 中为 actorsystem 禁用 akka.jvm-exit-on-fatal-error

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:12:55 27 4
gpt4 key购买 nike

我正在使用 akka actor 系统进行多线程处理。它在正常用例中运行良好。但是,Akka 会在发生 fatal error 时关闭 JVM。请告诉我如何配置 Akka 以禁用 java 中的“akka.jvm-exit-on-fatal-error”。下面是代码。

public class QueueListener implements MessageListener {


private String _queueName=null;
public static boolean isActorinit=false;
public static ActorSystem system=null;
private ActorRef myActor;

public QueueListener(String actorId, String qName){
this._queueName = qName;
if(!isActorinit){
system=ActorSystem.create(actorId);

isActorinit=true;
}

myActor=system.actorOf( Props.create(MessageExecutor.class, qName),qName+"id");
}


/*
* (non-Javadoc)
* @see javax.jms.MessageListener#onMessage(javax.jms.Message)
*/
@Override
public void onMessage(Message msg) {

executeRequest(msg);
}




/** This method will process the message fetch by the listener.
*
* @param msg - javax.jms.Messages parameter get queue message
*/
private void executeRequest(Message msg){

String requestData=null;
try {

if(msg instanceof TextMessage){
TextMessage textMessage= (TextMessage) msg;
requestData = textMessage.getText().toString();
}else if(msg instanceof ObjectMessage){
ObjectMessage objMsg = (ObjectMessage) msg;
requestData = objMsg.getObject().toString();
}
myActor.tell(requestData, ActorRef.noSender());

} catch (JMSException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

}

}

最佳答案

在你的项目中创建一个application.conf文件(例如sr/main/resources)并添加以下内容:

akka {
jvm-exit-on-fatal-error = false
}

当然,如果您已有一个配置文件,则无需创建新的配置文件,在这种情况下,它只是添加新条目:

jvm-exit-on-fatal-error = false

小心。让 JVM 在出现 OutOfMemory 等 fatal error 后运行通常不是一个好主意,会导致严重的问题。

关于java - 在 java 中为 actorsystem 禁用 akka.jvm-exit-on-fatal-error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34649527/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com