package backtype.storm.scheduler; import java.util.Map; public interface IScheduler { void prepare(Map conf); /** * Set assignments for the topologies which needs scheduling. The new * assignments is available through <code>cluster.getAssignments()</code> * * @param topologies * all the topologies in the cluster, some of them need schedule. * Topologies object here only contain static information about * topologies. Information like assignments, slots are all in the * <code>cluster</code>object. * @param cluster * the cluster these topologies are running in. * <code>cluster</code> contains everything user need to develop * a new scheduling logic. e.g. supervisors information, * available slots, current assignments for all the topologies * etc. User can set the new assignment for topologies using * <code>cluster.setAssignmentById</code> */ void schedule(Topologies topologies, Cluster cluster); }