Package org.apache.storm.scheduler

# Interface IScheduler

All Superinterfaces:
  `INodeAssignmentSentCallBack`

All Known Implementing Classes:
  `BlacklistScheduler`, `DefaultScheduler`, `EvenScheduler`, `IsolationScheduler`, `MultitenantScheduler`, `ResourceAwareScheduler`

public interface IScheduler extends INodeAssignmentSentCallBack

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default void`
  `cleanup()`
  called once when the system is shutting down, should be idempotent.
  `Map`
  `config()`
  This function returns the scheduler's configuration.
  `void`
  `prepare(Map<String,Object> conf, StormMetricsRegistry metricsRegistry)`
  `void`
  `schedule(Topologies topologies, Cluster cluster)`
  Set assignments for the topologies which needs scheduling.

  ### Methods inherited from interface org.apache.storm.scheduler.INodeAssignmentSentCallBack

  `nodeAssignmentSent`

- ## Method Details

  - ### prepare

    void prepare(Map<String,Object> conf, StormMetricsRegistry metricsRegistry)

  - ### schedule

    void schedule(Topologies topologies, Cluster cluster)
    Set assignments for the topologies which needs scheduling. The new assignments is available through `cluster.getAssignments()`
    Parameters:
      `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 `cluster` object.
      `cluster` - the cluster these topologies are running in. `cluster` 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 cluster.setAssignmentById()`

  - ### config

    Map config()
    This function returns the scheduler's configuration.
    Returns:
      The scheduler's configuration.

  - ### cleanup

    default void cleanup()
    called once when the system is shutting down, should be idempotent.