package org.act.tstream.callback.impl; import org.act.tstream.callback.BaseCallback; import org.act.tstream.cluster.StormStatus; import org.act.tstream.daemon.nimbus.NimbusData; import org.act.tstream.daemon.nimbus.TopologyAssign; import org.act.tstream.daemon.nimbus.TopologyAssignEvent; /** * 1. every Config.NIMBUS_MONITOR_FREQ_SECS will call MonitorRunnable 2. * MonitorRunnable will call NimbusData.transition 3. NimbusData.transition will * this callback * * */ public class ReassignTransitionCallback extends BaseCallback { private NimbusData data; private String topologyid; private StormStatus oldStatus; public ReassignTransitionCallback(NimbusData data, String topologyid) { this.data = data; this.topologyid = topologyid; this.oldStatus = null; } public ReassignTransitionCallback(NimbusData data, String topologyid, StormStatus oldStatus) { this.data = data; this.topologyid = topologyid; this.oldStatus = oldStatus; } @Override public <T> Object execute(T... args) { // default is true TopologyAssignEvent assignEvent = new TopologyAssignEvent(); assignEvent.setTopologyId(topologyid); assignEvent.setScratch(false); assignEvent.setOldStatus(oldStatus); TopologyAssign.push(assignEvent); return null; } }