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

    All Methods Instance Methods Abstract Methods Default Methods
    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 Detail

    - #### 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.