Package org.nustaq.kontraktor
Interface Scheduler
- All Superinterfaces:
Monitorable
- All Known Implementing Classes:
RemoteScheduler,SimpleScheduler
public interface Scheduler extends Monitorable
Scheduler manages scheduling of actors to threads. As kontraktor 3.0 simplyfies
scheduling compared to 2.0, this class currently doesn't do a lot.
-
Method Summary
Modifier and Type Method Description DispatcherThreadassignDispatcher(int minLoadPerc)voiddelayedCall(long millis, java.lang.Runnable toRun)java.lang.ObjectenqueueCall(Actor sendingActor, Actor receiver, java.lang.String methodName, java.lang.Object[] args, boolean isCB)java.lang.ObjectenqueueCall(ConnectionRegistry reg, Actor sendingActor, Actor receiver, java.lang.String methodName, java.lang.Object[] args, boolean isCB)java.lang.ObjectenqueueCallFromRemote(ConnectionRegistry reg, Actor sendingActor, Actor receiver, java.lang.String methodName, java.lang.Object[] args, boolean isCB, java.lang.Object securityContext, java.util.function.BiFunction<Actor,java.lang.String,java.lang.Boolean> callInterceptor, RemoteCallEntry remoteCallEntry)Warning: side effects on RCE transient to pass Method object from lookup up the calling hierarchyBackOffStrategygetBackoffStrategy()intgetDefaultQSize()java.lang.reflect.InvocationHandlergetInvoker(Actor dispatcher, java.lang.Object toWrap)intgetNumActors()<T> TinThread(Actor actor, T callback)Creates a wrapper on the given object enqueuing all calls to INTERFACE methods of the given object to the given actors's queue.java.lang.ObjectmapResult(java.lang.Object result, RemoteCallEntry rce)maps a JsonMapped result of a promise in casevoidpollDelay(int count)voidput2QueuePolling(java.util.Queue q, boolean isCBQ, java.lang.Object o, java.lang.Object sender)voidrebalance(DispatcherThread dispatcherThread)called from inside overloaded thread with load all actors assigned to the calling thread therefore can be safely moved<T> voidrunBlockingCall(Actor emitter, java.util.concurrent.Callable<T> toCall, Callback<T> resultHandler)voidterminateIfIdle()voidthreadStopped(DispatcherThread th)voidtryIsolate(DispatcherThread dp, Actor actorRef)voidtryStopThread(DispatcherThread dispatcherThread)Methods inherited from interface org.nustaq.kontraktor.monitoring.Monitorable
getReport, getSubMonitorables
-
Method Details
-
getDefaultQSize
int getDefaultQSize() -
pollDelay
void pollDelay(int count) -
put2QueuePolling
void put2QueuePolling(java.util.Queue q, boolean isCBQ, java.lang.Object o, java.lang.Object sender) -
enqueueCall
-
enqueueCall
java.lang.Object enqueueCall(ConnectionRegistry reg, Actor sendingActor, Actor receiver, java.lang.String methodName, java.lang.Object[] args, boolean isCB) -
enqueueCallFromRemote
java.lang.Object enqueueCallFromRemote(ConnectionRegistry reg, Actor sendingActor, Actor receiver, java.lang.String methodName, java.lang.Object[] args, boolean isCB, java.lang.Object securityContext, java.util.function.BiFunction<Actor,java.lang.String,java.lang.Boolean> callInterceptor, RemoteCallEntry remoteCallEntry)Warning: side effects on RCE transient to pass Method object from lookup up the calling hierarchy- Parameters:
reg-sendingActor-receiver-methodName-args-isCB-securityContext-callInterceptor-remoteCallEntry-- Returns:
-
threadStopped
-
terminateIfIdle
void terminateIfIdle() -
getInvoker
-
inThread
Creates a wrapper on the given object enqueuing all calls to INTERFACE methods of the given object to the given actors's queue. This is used to enable processing of resulting callback's in the callers thread. see also @InThread annotation.- Type Parameters:
T-- Parameters:
callback-- Returns:
-
delayedCall
void delayedCall(long millis, java.lang.Runnable toRun) -
runBlockingCall
-
assignDispatcher
-
rebalance
called from inside overloaded thread with load all actors assigned to the calling thread therefore can be safely moved- Parameters:
dispatcherThread-
-
getBackoffStrategy
BackOffStrategy getBackoffStrategy() -
tryStopThread
-
tryIsolate
-
getNumActors
int getNumActors()- Returns:
- number of actors scheduled by this scheduler. Note this is not precise as not thread safe'd.
-
mapResult
maps a JsonMapped result of a promise in case- Parameters:
result-- Returns:
-