当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《为java中的actorsystem禁用akka.jvm-exit-on-fatal-error》经验,为你挑选了1个好方法。

我正在使用akka actor系统进行多线程处理.它在正常使用情况下工作正常.但是,Akka因致命错误而关闭了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();
        }

    }

}

Gergely Bacs.. 14

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

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

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

jvm-exit-on-fatal-error = false

小心.让JVM在致命错误之后运行OutOfMemory通常不是一个好主意并导致严重问题.



1> Gergely Bacs..:

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

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

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

jvm-exit-on-fatal-error = false

小心.让JVM在致命错误之后运行OutOfMemory通常不是一个好主意并导致严重问题.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有