org.apache.storm.grouping

## Class LoadAwareShuffleGrouping

- java.lang.Object
- - org.apache.storm.grouping.LoadAwareShuffleGrouping

- All Implemented Interfaces:
    Serializable, CustomStreamGrouping, LoadAwareCustomStreamGrouping

      public class LoadAwareShuffleGrouping
      extends Object
      implements LoadAwareCustomStreamGrouping, Serializable

  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `LoadAwareShuffleGrouping()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `List<Integer>` | `chooseTasks(int taskId, List<Object> values)` This function implements a custom stream grouping.
    `int` | `getCapacity()`
    `org.apache.storm.grouping.LoadAwareShuffleGrouping.LocalityScope` | `getCurrentScope()`
    `void` | `prepare(WorkerTopologyContext context, GlobalStreamId stream, List<Integer> targetTasks)` Tells the stream grouping at runtime the tasks in the target bolt.
    `void` | `refreshLoad(LoadMapping loadMapping)`

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

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

- - ### Constructor Detail

    - #### LoadAwareShuffleGrouping

          public LoadAwareShuffleGrouping()

  - ### Method Detail

    - #### prepare

          public void prepare(WorkerTopologyContext context,
                              GlobalStreamId stream,
                              List<Integer> targetTasks)

      Description copied from interface: `CustomStreamGrouping`

      Tells the stream grouping at runtime the tasks in the target bolt. This information should be used in chooseTasks to determine the target tasks.

      It also tells the grouping the metadata on the stream this grouping will be used on.

      Specified by:
        `prepare` in interface `CustomStreamGrouping`

    - #### chooseTasks

          public List<Integer> chooseTasks(int taskId,
                                           List<Object> values)

      Description copied from interface: `CustomStreamGrouping`

      This function implements a custom stream grouping. It takes in as input the number of tasks in the target bolt in prepare and returns the tasks to send the tuples to.

      Specified by:
        `chooseTasks` in interface `CustomStreamGrouping`
        `values` - the values to group on

    - #### refreshLoad

          public void refreshLoad(LoadMapping loadMapping)

      Specified by:
        `refreshLoad` in interface `LoadAwareCustomStreamGrouping`

    - #### getCapacity

          public int getCapacity()

    - #### getCurrentScope

          public org.apache.storm.grouping.LoadAwareShuffleGrouping.LocalityScope getCurrentScope()

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