package com.github.ltsopensource.core.support; import com.github.ltsopensource.core.logger.Logger; import com.github.ltsopensource.core.logger.LoggerFactory; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.atomic.AtomicBoolean; /** * 非守护线程, 保持节点存活 * * @author Robert HG (254963746@qq.com) on 3/11/16. */ public class AliveKeeping { private static final Logger LOGGER = LoggerFactory.getLogger(AliveKeeping.class); private static Timer timer; private static AtomicBoolean start = new AtomicBoolean(false); public static void start() { if (start.compareAndSet(false, true)) { timer = new Timer("AliveKeepingService"); timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { if (LOGGER.isDebugEnabled()) { LOGGER.debug("I'm alive"); } } }, 1000 * 60 * 10, 1000 * 60 * 10); } } public static void stop() { if (start.compareAndSet(true, false)) { if (timer != null) { timer.cancel(); } } } }