Class

fm.http.server.RequestHandlerExecutionContextProvider

PriorityThreadPool

Related Doc: package RequestHandlerExecutionContextProvider

Permalink

final case class PriorityThreadPool(threads: Int, queueSize: Int) extends RequestHandlerExecutionContextProvider with Product with Serializable

This uses a PriorityBlockingQueue and ThreadPoolExecutor. The priority for each Runnable is the starting time of the Request such that Requests are processed in FIFO order. This prevents individual requests from being starved of CPU resources due to having lots of remote calls or Future callbacks since for older requests those callbacks will goto the front of the queue and execute first. The tradeoff being that queue operations take O(log N) time.

threads

The number of threads

queueSize

The initial (soft) size of our PriorityQueue

Linear Supertypes
Serializable, Serializable, Product, Equals, RequestHandlerExecutionContextProvider, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PriorityThreadPool
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. RequestHandlerExecutionContextProvider
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new PriorityThreadPool(threads: Int, queueSize: Int)

    Permalink

    threads

    The number of threads

    queueSize

    The initial (soft) size of our PriorityQueue

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def apply(request: Request): ExecutionContext

    Permalink

    Given a Request return the Execution to pass into the RequestHandler

    Given a Request return the Execution to pass into the RequestHandler

    Definition Classes
    PriorityThreadPoolRequestHandlerExecutionContextProvider
  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @throws( ... )
  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  9. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  10. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  11. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  12. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  13. val queueSize: Int

    Permalink

    The initial (soft) size of our PriorityQueue

  14. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  15. val threads: Int

    Permalink

    The number of threads

  16. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @Deprecated @deprecated @throws( classOf[java.lang.Throwable] )
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped