org.apache.cassandra.scheduler

## Class RoundRobinScheduler

- java.lang.Object
- - org.apache.cassandra.scheduler.RoundRobinScheduler

- All Implemented Interfaces:
    IRequestScheduler

      public class RoundRobinScheduler
      extends java.lang.Object
      implements IRequestScheduler

  A very basic Round Robin implementation of the RequestScheduler. It handles request groups identified on user/keyspace by placing them in separate queues and servicing a request from each queue in a RoundRobin fashion. It optionally adds weights for each round.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RoundRobinScheduler(RequestSchedulerOptions options)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `queue(java.lang.Thread t, java.lang.String id, long timeoutMS)` Queue incoming request threads
    `void` | `release()` A convenience method for indicating when a particular request has completed processing, and before a return to the client

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

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

- - ### Constructor Detail

    - #### RoundRobinScheduler

          public RoundRobinScheduler(RequestSchedulerOptions options)

  - ### Method Detail

    - #### queue

          public void queue(java.lang.Thread t,
                            java.lang.String id,
                            long timeoutMS)
                     throws java.util.concurrent.TimeoutException

      Description copied from interface: `IRequestScheduler`
      Queue incoming request threads
      Specified by:
        `queue` in interface `IRequestScheduler`
      Parameters:
        `t` - Thread handing the request
        `id` - Scheduling parameter, an id to distinguish profiles (users/keyspace)
        `timeoutMS` - The max time in milliseconds to spend blocking for a slot
      Throws:
        `java.util.concurrent.TimeoutException`

    - #### release

          public void release()

      Description copied from interface: `IRequestScheduler`
      A convenience method for indicating when a particular request has completed processing, and before a return to the client
      Specified by:
        `release` in interface `IRequestScheduler`

Copyright © 2018 The Apache Software Foundation