2018-04-12

关于心跳机制的代码

// 定时输出心跳文件,用于运维检测进程是否还活着

 final String heartbeatFile = System.getProperty("heartbeat.file");

final AtomicBoolean shutdown =new AtomicBoolean(false);

if(heartbeatFile !=null && heartbeatFile.length() >0) {

String heartbeatInterval = System.getProperty("heartbeat.interval.ms");

final long heartbeatIntervalInMillis = (heartbeatInterval ==null || heartbeatInterval.length() ==0 ?1000L : Long.parseLong(heartbeatInterval));

new Thread(new Runnable() {

        public void run() {

                for( ; !shutdown.get() ; ) {

                FileOutputStream hearbeatOut =null;

        try {

                hearbeatOut =new FileOutputStream(heartbeatFile);

                hearbeatOut.write(String.valueOf(System.currentTimeMillis()).getBytes("ISO_8859_1"));

                hearbeatOut.flush();

         }catch(IOException ex) {

                System.out.println("failed to write heartbeat file: " +heartbeatFile +": " + ex.getMessage());

                ex.printStackTrace();

           }finally {

                if(hearbeatOut !=null) {

                try {

                    hearbeatOut.close();

                }catch (IOException e) {

                    System.out.println("failed to close heartbeat file: " +heartbeatFile);

                    e.printStackTrace();

                    }

                }

            }

                try {

                    Thread.sleep(heartbeatIntervalInMillis);

                }catch (InterruptedException e) {

                    e.printStackTrace();

                }

            }

        }

        },"thread-bootstrap-heartbeat").start();

    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,740评论 18 399
  • ```java /* * Copyright (C) 2006 The Android Open Source P...
    mrganer阅读 1,158评论 0 50
  • JAVA面试题 1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域 ...
    JA尐白阅读 1,181评论 1 0
  • 2017.3.22晚 想说好多好多,张开嘴巴,却什么都说不出来。 此刻,就是想应该要坐下来写点什么。 尽管,我不知...
    米芬阅读 618评论 5 6
  • 这是我2016年大三的第二个学期看的第一本书。 《安娜·卡列尼娜》被称为十九世纪俄国的百科全书。在这本书里,我们可...
    未棉阅读 2,315评论 0 8