@InterfaceAudience.Public @InterfaceStability.Evolving public class AsyncDispatcher extends AbstractService implements Dispatcher
Events in a separate thread. Currently only single thread
 does that. Potentially there could be multiple channels for each event type
 class and a thread pool can be used to dispatch the events.| Modifier and Type | Field and Description | 
|---|---|
| protected Map<Class<? extends Enum>,EventHandler> | eventDispatchers | 
| Constructor and Description | 
|---|
| AsyncDispatcher() | 
| AsyncDispatcher(BlockingQueue<Event> eventQueue) | 
| AsyncDispatcher(String dispatcherName)Set a name for this dispatcher thread. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addMetrics(org.apache.hadoop.yarn.metrics.EventTypeMetrics metrics,
          Class<? extends Enum> eventClass) | 
| void | disableExitOnDispatchException() | 
| protected void | dispatch(Event event) | 
| EventHandler<Event> | getEventHandler() | 
| protected boolean | isDrained() | 
| protected boolean | isEventThreadWaiting() | 
| protected boolean | isStopped() | 
| void | register(Class<? extends Enum> eventType,
        EventHandler handler) | 
| protected void | serviceInit(Configuration conf)All initialization code needed by a service. | 
| protected void | serviceStart()Actions called during the INITED to STARTED transition. | 
| protected void | serviceStop()Actions called during the transition to the STOPPED state. | 
| void | setDrainEventsOnStop() | 
close, getBlockers, getConfig, getFailureCause, getFailureState, getLifecycleHistory, getName, getServiceState, getStartTime, init, isInState, noteFailure, putBlocker, registerGlobalListener, registerServiceListener, removeBlocker, setConfig, start, stop, toString, unregisterGlobalListener, unregisterServiceListener, waitForServiceToStopprotected final Map<Class<? extends Enum>,EventHandler> eventDispatchers
public AsyncDispatcher()
public AsyncDispatcher(BlockingQueue<Event> eventQueue)
public AsyncDispatcher(String dispatcherName)
dispatcherName - name of the dispatcher threadpublic void disableExitOnDispatchException()
protected void serviceInit(Configuration conf) throws Exception
AbstractServiceAbstractService.init(Configuration) prevents re-entrancy.
 The base implementation checks to see if the subclass has created
 a new configuration instance, and if so, updates the base class valueserviceInit in class AbstractServiceconf - configurationException - on a failure -these will be caught,
 possibly wrapped, and will trigger a service stopprotected void serviceStart()
                     throws Exception
AbstractServiceAbstractService.start() prevents re-entrancy.serviceStart in class AbstractServiceException - if needed -these will be caught,
 wrapped, and trigger a service stoppublic void setDrainEventsOnStop()
protected void serviceStop()
                    throws Exception
AbstractServiceAbstractService.stop() prevents re-entrancy.
 Implementations MUST write this to be robust against failures, including
 checks for null references -and for the first failure to not stop other
 attempts to shut down parts of the service.serviceStop in class AbstractServiceException - if needed -these will be caught and logged.protected void dispatch(Event event)
public void register(Class<? extends Enum> eventType, EventHandler handler)
register in interface Dispatcherpublic EventHandler<Event> getEventHandler()
getEventHandler in interface Dispatcherprotected boolean isEventThreadWaiting()
protected boolean isDrained()
protected boolean isStopped()
Copyright © 2023 Apache Software Foundation. All rights reserved.