Package discord4j.common
Class ReactorResources
- java.lang.Object
-
- discord4j.common.ReactorResources
-
public class ReactorResources extends Object
Provides Reactor Netty resources like anHttpClientandSchedulerinstances 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 aLoopResources.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classReactorResources.Builder
-
Field Summary
Fields Modifier and Type Field Description static Supplier<Scheduler>DEFAULT_BLOCKING_TASK_SCHEDULERstatic Supplier<HttpClient>DEFAULT_HTTP_CLIENTstatic Supplier<Scheduler>DEFAULT_TIMER_TASK_SCHEDULER
-
Constructor Summary
Constructors Modifier Constructor Description ReactorResources()Create with a defaultHttpClientandSchedulers for timed and blocking tasks.protectedReactorResources(ReactorResources.Builder builder)ReactorResources(HttpClient httpClient, Scheduler timerTaskScheduler, Scheduler blockingTaskScheduler)Create with a pre-configuredHttpClientandSchedulers for timed and blocking tasks.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ReactorResources.Builderbuilder()static ReactorResourcescreate()SchedulergetBlockingTaskScheduler()Get theSchedulerconfigured by this provider to be used in blocking tasks.HttpClientgetHttpClient()Get theHttpClientconfigured by this provider.SchedulergetTimerTaskScheduler()Get theSchedulerconfigured by this provider to be used in timed tasks.static HttpClientnewHttpClient(ConnectionProvider provider)Create a Reactor NettyHttpClientusing the given connection pool.static HttpClientnewHttpClient(ConnectionProvider provider, LoopResources resources)Create a Reactor NettyHttpClientusing the given connection pool and event loop threads.
-
-
-
Constructor Detail
-
ReactorResources
public ReactorResources()
Create with a defaultHttpClientandSchedulers for timed and blocking tasks.
-
ReactorResources
public ReactorResources(HttpClient httpClient, Scheduler timerTaskScheduler, Scheduler blockingTaskScheduler)
Create with a pre-configuredHttpClientandSchedulers for timed and blocking tasks.- Parameters:
httpClient- the underlyingHttpClientto usetimerTaskScheduler- the time-capableSchedulerto useblockingTaskScheduler- theSchedulerto use for potentially blocking tasks
-
ReactorResources
protected ReactorResources(ReactorResources.Builder builder)
-
-
Method Detail
-
create
public static ReactorResources create()
-
builder
public static ReactorResources.Builder builder()
-
getHttpClient
public HttpClient getHttpClient()
Get theHttpClientconfigured by this provider.- Returns:
- a Reactor Netty HTTP client ready to perform requests
-
getTimerTaskScheduler
public Scheduler getTimerTaskScheduler()
Get theSchedulerconfigured by this provider to be used in timed tasks.- Returns:
- a time-capable
Scheduler
-
getBlockingTaskScheduler
public Scheduler getBlockingTaskScheduler()
Get theSchedulerconfigured by this provider to be used in blocking tasks.- Returns:
- a blocking-capable
Scheduler
-
newHttpClient
public static HttpClient newHttpClient(ConnectionProvider provider)
Create a Reactor NettyHttpClientusing 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
HttpClientconfigured with custom resources
-
newHttpClient
public static HttpClient newHttpClient(ConnectionProvider provider, LoopResources resources)
Create a Reactor NettyHttpClientusing 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 useresources- the set of event loop threads to use- Returns:
- an
HttpClientconfigured with custom resources
-
-