org.apache.storm.scheduler

## Class EvenScheduler

- java.lang.Object
- - org.apache.storm.scheduler.EvenScheduler

- All Implemented Interfaces:
    INodeAssignmentSentCallBack, IScheduler

      public class EvenScheduler
      extends Object
      implements IScheduler

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `EvenScheduler()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Map<String,Map<String,Double>>` | `config()` This function returns the scheduler’s configuration.
    `static Map<WorkerSlot,List<ExecutorDetails>>` | `getAliveAssignedWorkerSlotExecutors(Cluster cluster, String topologyId)`
    `void` | `prepare(Map<String,Object> conf, StormMetricsRegistry metricsRegistry)`
    `void` | `schedule(Topologies topologies, Cluster cluster)` Set assignments for the topologies which needs scheduling.
    `static void` | `scheduleTopologiesEvenly(Topologies topologies, Cluster cluster)`
    `static List<WorkerSlot>` | `sortSlots(List<WorkerSlot> availableSlots)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.storm.scheduler.IScheduler

      `cleanup`

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

      `nodeAssignmentSent`

- - ### Constructor Detail

    - #### EvenScheduler

          public EvenScheduler()

  - ### Method Detail

    - #### sortSlots

          public static List<WorkerSlot> sortSlots(List<WorkerSlot> availableSlots)

    - #### getAliveAssignedWorkerSlotExecutors

          public static Map<WorkerSlot,List<ExecutorDetails>> getAliveAssignedWorkerSlotExecutors(Cluster cluster,
                                                                                                  String topologyId)

    - #### scheduleTopologiesEvenly

          public static void scheduleTopologiesEvenly(Topologies topologies,
                                                      Cluster cluster)

    - #### prepare

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

      Specified by:
        `prepare` in interface `IScheduler`

    - #### schedule

          public void schedule(Topologies topologies,
                               Cluster cluster)

      Description copied from interface: `IScheduler`

      Set assignments for the topologies which needs scheduling. The new assignments is available through `cluster.getAssignments()`

      Specified by:
        `schedule` in interface `IScheduler`
      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

          public Map<String,Map<String,Double>> config()

      Description copied from interface: `IScheduler`

      This function returns the scheduler’s configuration.

      Specified by:
        `config` in interface `IScheduler`
      Returns:
        The scheduler’s configuration.

Copyright © 2021 The Apache Software Foundation. All rights reserved.