Package org.apache.hc.core5.reactor
Class DefaultConnectingIOReactor
- java.lang.Object
-
- org.apache.hc.core5.reactor.AbstractIOReactorBase
-
- org.apache.hc.core5.reactor.DefaultConnectingIOReactor
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,ModalCloseable,ConnectionInitiator,IOReactor,IOReactorService
public class DefaultConnectingIOReactor extends AbstractIOReactorBase
Multi-core I/O reactor that can act asConnectionInitiatorInternally this I/O reactor distributes newly created I/O session equally across multiple I/O worker threads for a more optimal resource utilization and a better I/O performance. Usually it is recommended to have one worker I/O reactor per physical CPU core.- Since:
- 4.0
-
-
Field Summary
Fields Modifier and Type Field Description private MultiCoreIOReactorioReactorprivate static java.util.concurrent.ThreadFactoryTHREAD_FACTORYprivate SingleCoreIOReactor[]workersprivate IOWorkerSelectorworkerSelector
-
Constructor Summary
Constructors Constructor Description DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory)Creates an instance of DefaultConnectingIOReactor with default configuration.DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig ioReactorConfig, java.util.concurrent.ThreadFactory threadFactory, Decorator<IOSession> ioSessionDecorator, Callback<java.lang.Exception> exceptionCallback, IOSessionListener sessionListener, Callback<IOSession> sessionShutdownCallback)DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig ioReactorConfig, java.util.concurrent.ThreadFactory threadFactory, Decorator<IOSession> ioSessionDecorator, Callback<java.lang.Exception> exceptionCallback, IOSessionListener sessionListener, IOReactorMetricsListener threadPoolListener, Callback<IOSession> sessionShutdownCallback, IOWorkerSelector workerSelector)DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig config, Callback<IOSession> sessionShutdownCallback)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidawaitShutdown(TimeValue waitTime)Blocks for the given period of time in milliseconds awaiting the completion of the reactor shutdown.voidclose()voidclose(CloseMode closeMode)Shuts down the I/O reactor either gracefully or immediately.IOReactorStatusgetStatus()Returns the current status of the reactor.voidinitiateShutdown()Initiates shutdown of the reactor without blocking.(package private) SingleCoreIOReactorselectWorker()voidstart()Starts I/O reactor.-
Methods inherited from class org.apache.hc.core5.reactor.AbstractIOReactorBase
connect
-
-
-
-
Field Detail
-
workers
private final SingleCoreIOReactor[] workers
-
ioReactor
private final MultiCoreIOReactor ioReactor
-
workerSelector
private final IOWorkerSelector workerSelector
-
THREAD_FACTORY
private static final java.util.concurrent.ThreadFactory THREAD_FACTORY
-
-
Constructor Detail
-
DefaultConnectingIOReactor
@Internal public DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig ioReactorConfig, java.util.concurrent.ThreadFactory threadFactory, Decorator<IOSession> ioSessionDecorator, Callback<java.lang.Exception> exceptionCallback, IOSessionListener sessionListener, IOReactorMetricsListener threadPoolListener, Callback<IOSession> sessionShutdownCallback, IOWorkerSelector workerSelector)
- Since:
- 5.4
-
DefaultConnectingIOReactor
public DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig ioReactorConfig, java.util.concurrent.ThreadFactory threadFactory, Decorator<IOSession> ioSessionDecorator, Callback<java.lang.Exception> exceptionCallback, IOSessionListener sessionListener, Callback<IOSession> sessionShutdownCallback)
-
DefaultConnectingIOReactor
public DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig config, Callback<IOSession> sessionShutdownCallback)
-
DefaultConnectingIOReactor
public DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory)
Creates an instance of DefaultConnectingIOReactor with default configuration.- Since:
- 5.0
-
-
Method Detail
-
start
public void start()
Description copied from interface:IOReactorServiceStarts I/O reactor.
-
getStatus
public IOReactorStatus getStatus()
Description copied from interface:IOReactorReturns the current status of the reactor.- Returns:
- reactor status.
-
selectWorker
SingleCoreIOReactor selectWorker()
- Specified by:
selectWorkerin classAbstractIOReactorBase
-
initiateShutdown
public void initiateShutdown()
Description copied from interface:IOReactorInitiates shutdown of the reactor without blocking. The reactor is expected to terminate all active connections, to shut down itself and to release system resources it currently holds
-
awaitShutdown
public void awaitShutdown(TimeValue waitTime) throws java.lang.InterruptedException
Description copied from interface:IOReactorBlocks for the given period of time in milliseconds awaiting the completion of the reactor shutdown.- Parameters:
waitTime- wait time.- Throws:
java.lang.InterruptedException- Thrown when a thread is waiting, sleeping, or otherwise occupied, and the thread is interrupted, either before or during the activity.
-
close
public void close(CloseMode closeMode)
Description copied from interface:IOReactorShuts down the I/O reactor either gracefully or immediately. During graceful shutdown individual I/O sessions should be informed about imminent termination and be given a grace period to complete the ongoing I/O sessions. During immediate shutdown all ongoing I/O sessions get aborted immediately.- Parameters:
closeMode- How to close the receiver.
-
close
public void close() throws java.io.IOException- Throws:
java.io.IOException
-
-