Package org.nustaq.kontraktor.services
Class ServiceActor<T extends ServiceActor>
java.lang.Object
org.nustaq.kontraktor.Actors
org.nustaq.kontraktor.Actor<T>
org.nustaq.kontraktor.services.ServiceActor<T>
- All Implemented Interfaces:
java.io.Serializable,java.util.concurrent.Executor,org.nustaq.kontraktor.monitoring.Monitorable
- Direct Known Subclasses:
DataShard,DynDataShard,PlainService,RLJsonServerService
public abstract class ServiceActor<T extends ServiceActor>
extends org.nustaq.kontraktor.Actor<T>
Created by ruedi on 12.08.2015.
- See Also:
- Serialized Form
-
Nested Class Summary
-
Field Summary
Fields Modifier and Type Field Description protected ServiceArgscmdlineprotected ClusterCfgconfigprotected org.nustaq.reallive.server.dynamic.DynClusterDistributioncurrentDistributionprotected DataClientdclientstatic intDEFAULT_START_TIMEOUTstatic java.lang.StringREGISTRY_DISCONNECTEDstatic java.lang.StringREGISTRY_RECONNECTEDprotected java.util.Map<java.lang.String,java.lang.Object>requiredServicesprotected org.nustaq.kontraktor.remoting.base.ServiceDescriptionserviceDescriptionprotected org.nustaq.kontraktor.remoting.base.ReconnectableRemoteRef<ServiceRegistry>serviceRegistrystatic java.lang.StringUNCONNECTEDFields inherited from class org.nustaq.kontraktor.Actor
__cbQueue, __clientConnection, __connections, __currentDispatcher, __mailbox, __mailboxCapacity, __mbCapacity, __publishTarget, __remoteId, __scheduler, __self, __stopped, __ticketMachine, connection, sender, userData, zzRoutingGCEnabled, zzServerMsgCallback -
Constructor Summary
Constructors Constructor Description ServiceActor() -
Method Summary
Modifier and Type Method Description voidaddServiceEventListener(java.util.function.BiConsumer<java.lang.String,java.lang.Object> l)runs on client side, receives forwarded service event received from service actorprotected org.nustaq.kontraktor.IPromiseawaitRequiredServices()protected voidawaitRequiredServicesInternal(org.nustaq.kontraktor.Promise p)org.nustaq.kontraktor.IPromiseconnectRequiredServices()try to connect required (unconnected) services, in case of failur UNCONNECTED is put into service hashmap insteadprotected org.nustaq.kontraktor.IPromise<org.nustaq.kontraktor.Actor>connectService(org.nustaq.kontraktor.remoting.base.ServiceDescription serviceDescription)protected abstract org.nustaq.kontraktor.remoting.base.ServiceDescriptioncreateServiceDescription()protected voidfireServiceEvent(java.lang.String ev, java.lang.Object arg)protected java.lang.String[]getAllServiceNames()protected ServiceArgsgetCmdline()org.nustaq.kontraktor.IPromise<ClusterCfg>getConfig()org.nustaq.kontraktor.IPromise<DataClient>getDataClient()protected intgetPort()protected abstract java.lang.String[]getRequiredServiceNames()protected <T extends org.nustaq.kontraktor.Actor>
TgetService(java.lang.String name)protected org.nustaq.kontraktor.remoting.base.ServiceDescriptiongetServiceDescription()ServiceRegistrygetServiceRegistry()protected java.io.SerializablegetStatus()protected voidgravityDisconnected()voidheartBeat()org.nustaq.kontraktor.IPromiseinit(org.nustaq.kontraktor.remoting.base.ConnectableActor registryConnectable, ServiceArgs options, boolean autoRegister)protected voidinitRealLiveDynamic()protected voidinitRealLiveFixed()protected booleanisDynamicDataCluster()protected booleanisFixedDataCluster()protected voidnotifyConfigChanged()override, config contains updated ClusterCfgprotected voidonRegistryConnected(boolean autoRegister)protected voidonRegistryDisconnected()protected voidonServiceRegistryReconnected()protected voidpublishSelf()protected voidregisterSelf()register at service registryvoidremoveServiceEventListener(java.util.function.BiConsumer<java.lang.String,java.lang.Object> l)protected voidrequiredSerivceWentDown(org.nustaq.kontraktor.remoting.base.ServiceDescription cdr)static ServiceActorRunTCP(java.lang.String[] args, java.lang.Class<? extends ServiceActor> serviceClazz, java.lang.Class<? extends ServiceArgs> argsClazz)static ServiceActorRunTCP(java.lang.String[] args, java.lang.Class<? extends ServiceActor> serviceClazz, java.lang.Class<? extends ServiceArgs> argsClazz, long timeout)static ServiceActorRunTCP(java.lang.String[] args, java.lang.Class<? extends ServiceActor> serviceClazz, java.lang.Class<? extends ServiceArgs> argsClazz, java.lang.Class<? extends ServiceRegistry> serviceRegistryClass)static ServiceActorRunTCP(java.lang.String[] args, java.lang.Class<? extends ServiceActor> serviceClazz, java.lang.Class<? extends ServiceArgs> argsClazz, java.lang.Class<? extends ServiceRegistry> serviceRegistryClass, long timeout)run & connect a service with given cmdline args and classesstatic ServiceActorRunTCP(ServiceArgs options, java.lang.Class<? extends ServiceActor> serviceClazz, long timeout)static ServiceActorRunTCP(ServiceArgs options, java.lang.Class<? extends ServiceActor> serviceClazz, java.lang.Class<? extends ServiceRegistry> serviceRegistryClass, long timeout)protected voidserviceDisconnected(org.nustaq.kontraktor.Actor act)protected voidserviceEvent(java.lang.String eventId, java.lang.Object cdr, java.lang.Object err)Methods inherited from class org.nustaq.kontraktor.Actor
__addDeadLetter, __addRemoteConnection, __addStopHandler, __dispatchRemoteCall, __enqueueCall, __getCachedMethod, __removeRemoteConnection, __stop, __stopImpl, __submit, ask, askMsg, asyncstop, checkThread, close, closeCurrentClient, current, cyclic, debounce, delayed, execInThreadPool, execute, getActor, getActorRef, getCallbackSize, getConnections, getCurrentDispatcher, getFactory, getMailboxSize, getQSizes, getReport, getScheduler, getSubMonitorables, getUntypedRef, hasStopped, inside, inThread, isCallbackQPressured, isEmpty, isMailboxPressured, isProxy, isPublished, isRemote, isStopped, ping, router$clientPing, self, serialOn, setServerMsgCallback, stop, stopSafeClose, tell, tellMsg, unpublish, zzkrouterLostClient, zzRoutingRefGCMethods inherited from class org.nustaq.kontraktor.Actors
AddDeadLetter, all, all, all, allMapped, AsActor, AsActor, AsActor, AsActor, AsUntypedActor, awaitAll, awaitAll, awaitAll, awaitAll, complete, complete, DeadLetters, flow, InThread, isComplete, isCont, isError, isErrorOrComplete, isResult, isTimeout, kYield, kYield, promise, race, race, reject, resolve, resolve, stream, SubmitDelayed, yieldCallbacks
-
Field Details
-
REGISTRY_DISCONNECTED
public static final java.lang.String REGISTRY_DISCONNECTED- See Also:
- Constant Field Values
-
REGISTRY_RECONNECTED
public static final java.lang.String REGISTRY_RECONNECTED- See Also:
- Constant Field Values
-
DEFAULT_START_TIMEOUT
public static int DEFAULT_START_TIMEOUT -
UNCONNECTED
public static final java.lang.String UNCONNECTED- See Also:
- Constant Field Values
-
serviceRegistry
protected org.nustaq.kontraktor.remoting.base.ReconnectableRemoteRef<ServiceRegistry> serviceRegistry -
requiredServices
protected java.util.Map<java.lang.String,java.lang.Object> requiredServices -
config
-
serviceDescription
protected org.nustaq.kontraktor.remoting.base.ServiceDescription serviceDescription -
cmdline
-
dclient
-
currentDistribution
protected org.nustaq.reallive.server.dynamic.DynClusterDistribution currentDistribution
-
-
Constructor Details
-
ServiceActor
public ServiceActor()
-
-
Method Details
-
RunTCP
public static ServiceActor RunTCP(java.lang.String[] args, java.lang.Class<? extends ServiceActor> serviceClazz, java.lang.Class<? extends ServiceArgs> argsClazz) -
RunTCP
public static ServiceActor RunTCP(java.lang.String[] args, java.lang.Class<? extends ServiceActor> serviceClazz, java.lang.Class<? extends ServiceArgs> argsClazz, java.lang.Class<? extends ServiceRegistry> serviceRegistryClass) -
RunTCP
public static ServiceActor RunTCP(java.lang.String[] args, java.lang.Class<? extends ServiceActor> serviceClazz, java.lang.Class<? extends ServiceArgs> argsClazz, long timeout) -
RunTCP
public static ServiceActor RunTCP(java.lang.String[] args, java.lang.Class<? extends ServiceActor> serviceClazz, java.lang.Class<? extends ServiceArgs> argsClazz, java.lang.Class<? extends ServiceRegistry> serviceRegistryClass, long timeout)run & connect a service with given cmdline args and classes- Parameters:
args-serviceClazz-argsClazz-- Returns:
- Throws:
java.lang.IllegalAccessExceptionjava.lang.InstantiationException
-
RunTCP
public static ServiceActor RunTCP(ServiceArgs options, java.lang.Class<? extends ServiceActor> serviceClazz, long timeout) -
RunTCP
public static ServiceActor RunTCP(ServiceArgs options, java.lang.Class<? extends ServiceActor> serviceClazz, java.lang.Class<? extends ServiceRegistry> serviceRegistryClass, long timeout) -
init
public org.nustaq.kontraktor.IPromise init(org.nustaq.kontraktor.remoting.base.ConnectableActor registryConnectable, ServiceArgs options, boolean autoRegister) -
addServiceEventListener
public void addServiceEventListener(java.util.function.BiConsumer<java.lang.String,java.lang.Object> l)runs on client side, receives forwarded service event received from service actor- Parameters:
l-
-
removeServiceEventListener
public void removeServiceEventListener(java.util.function.BiConsumer<java.lang.String,java.lang.Object> l) -
getServiceRegistry
-
fireServiceEvent
protected void fireServiceEvent(java.lang.String ev, java.lang.Object arg) -
onRegistryDisconnected
protected void onRegistryDisconnected() -
onRegistryConnected
protected void onRegistryConnected(boolean autoRegister) -
onServiceRegistryReconnected
protected void onServiceRegistryReconnected() -
awaitRequiredServices
protected org.nustaq.kontraktor.IPromise awaitRequiredServices() -
awaitRequiredServicesInternal
protected void awaitRequiredServicesInternal(org.nustaq.kontraktor.Promise p) -
initRealLiveDynamic
protected void initRealLiveDynamic() -
initRealLiveFixed
protected void initRealLiveFixed() -
getConfig
-
getDataClient
-
registerSelf
protected void registerSelf()register at service registry -
publishSelf
protected void publishSelf() -
getPort
protected int getPort() -
getCmdline
-
getAllServiceNames
protected java.lang.String[] getAllServiceNames() -
isFixedDataCluster
protected boolean isFixedDataCluster() -
isDynamicDataCluster
protected boolean isDynamicDataCluster() -
getRequiredServiceNames
protected abstract java.lang.String[] getRequiredServiceNames() -
serviceEvent
protected void serviceEvent(java.lang.String eventId, java.lang.Object cdr, java.lang.Object err) -
notifyConfigChanged
protected void notifyConfigChanged()override, config contains updated ClusterCfg -
requiredSerivceWentDown
protected void requiredSerivceWentDown(org.nustaq.kontraktor.remoting.base.ServiceDescription cdr) -
getService
protected <T extends org.nustaq.kontraktor.Actor> T getService(java.lang.String name) -
connectRequiredServices
public org.nustaq.kontraktor.IPromise connectRequiredServices()try to connect required (unconnected) services, in case of failur UNCONNECTED is put into service hashmap instead- Returns:
-
connectService
protected org.nustaq.kontraktor.IPromise<org.nustaq.kontraktor.Actor> connectService(org.nustaq.kontraktor.remoting.base.ServiceDescription serviceDescription) -
serviceDisconnected
protected void serviceDisconnected(org.nustaq.kontraktor.Actor act) -
heartBeat
public void heartBeat() -
getStatus
protected java.io.Serializable getStatus() -
gravityDisconnected
protected void gravityDisconnected() -
createServiceDescription
protected abstract org.nustaq.kontraktor.remoting.base.ServiceDescription createServiceDescription() -
getServiceDescription
protected org.nustaq.kontraktor.remoting.base.ServiceDescription getServiceDescription()
-