package com.alipay.bluewhale.core.daemon.supervisor; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.log4j.Logger; import backtype.storm.Config; import com.alipay.bluewhale.core.callback.RunnableCallback; /** * ÿ��SUPERVISOR_HEARTBEAT_FREQUENCY_SECSʱ�䣬д��supervisor������ */ class AsyncHeartbeat extends RunnableCallback { private static Logger LOG = Logger.getLogger(AsyncHeartbeat.class); private Map conf; private Heartbeat heartbeat; private AtomicBoolean active; private Integer result; /** * @param conf * @param heartbeat * @param active * @param activeReadLock */ public AsyncHeartbeat(Map conf, Heartbeat heartbeat, AtomicBoolean active) { this.conf = conf; this.heartbeat = heartbeat; this.active = active; this.result = null; } @Override public Object getResult() { return result; } @Override public void run() { heartbeat.run(); if (active.get()) { result = (Integer) conf .get(Config.SUPERVISOR_HEARTBEAT_FREQUENCY_SECS); }else { result = -1; } } }