Class ReactorResources

java.lang.Object
discord4j.common.ReactorResources

public class ReactorResources extends Object
Provides Reactor Netty resources like an HttpClient and Scheduler instances that can be customized and reused across the application.

Allow a user to externally manage the connection pool through a custom ConnectionProvider, and custom event loop threads using a LoopResources.

  • Field Details

    • DEFAULT_HTTP_CLIENT

      public static final Supplier<HttpClient> DEFAULT_HTTP_CLIENT
    • DEFAULT_TIMER_TASK_SCHEDULER

      public static final Supplier<Scheduler> DEFAULT_TIMER_TASK_SCHEDULER
    • DEFAULT_BLOCKING_TASK_SCHEDULER

      public static final Supplier<Scheduler> DEFAULT_BLOCKING_TASK_SCHEDULER
  • Constructor Details

    • ReactorResources

      public ReactorResources()
      Create with a default HttpClient and Schedulers for timed and blocking tasks.
    • ReactorResources

      public ReactorResources(HttpClient httpClient, Scheduler timerTaskScheduler, Scheduler blockingTaskScheduler)
      Create with a pre-configured HttpClient and Schedulers for timed and blocking tasks.
      Parameters:
      httpClient - the underlying HttpClient to use
      timerTaskScheduler - the time-capable Scheduler to use
      blockingTaskScheduler - the Scheduler to use for potentially blocking tasks
    • ReactorResources

      protected ReactorResources(ReactorResources.Builder builder)
  • Method Details

    • create

      public static ReactorResources create()
    • builder

      public static ReactorResources.Builder builder()
    • getHttpClient

      public HttpClient getHttpClient()
      Get the HttpClient configured by this provider.
      Returns:
      a Reactor Netty HTTP client ready to perform requests
    • getTimerTaskScheduler

      public Scheduler getTimerTaskScheduler()
      Get the Scheduler configured by this provider to be used in timed tasks.
      Returns:
      a time-capable Scheduler
    • getBlockingTaskScheduler

      public Scheduler getBlockingTaskScheduler()
      Get the Scheduler configured by this provider to be used in blocking tasks.
      Returns:
      a blocking-capable Scheduler
    • newHttpClient

      public static HttpClient newHttpClient(ConnectionProvider provider)
      Create a Reactor Netty HttpClient using the given connection pool.

      Use this in case you want dedicated resources for a particular client or clients instead of the global default.

      Parameters:
      provider - the connection pool provider to use
      Returns:
      an HttpClient configured with custom resources
    • newHttpClient

      public static HttpClient newHttpClient(ConnectionProvider provider, LoopResources resources)
      Create a Reactor Netty HttpClient using the given connection pool and event loop threads.

      Use this in case you want dedicated resources for a particular client or clients instead of the global default.

      Parameters:
      provider - the connection pool provider to use
      resources - the set of event loop threads to use
      Returns:
      an HttpClient configured with custom resources