Interface Worker
- All Superinterfaces:
com.fishlib.base.log.LogOutputAppendable
public interface Worker
extends com.fishlib.base.log.LogOutputAppendable
Instances of a Worker interface represent Java process running a
RemoteQueryProcessor
The Java Process could be an Operating System process, a Docker Container or some other controlled process.
Workers are created and destroyed by WorkerControl
objects.
Worker instances are essentially a Data Object, with getters and setters. The attributes are parameters and
settings used by the WorkerControl
object that manages the lifecycle of the Worker.
-
Field Summary
Fields Modifier and Type Field Description static String
processUser
-
Method Summary
Modifier and Type Method Description File
getArtifactDirectory()
Returns the artifactDirectory of this Workerio.deephaven.enterprise.auth.AuthToken
getAuthToken()
Returns the auth token for this Workerlong
getCancelledTimeNS()
Returns the cancelledTimeNS of this WorkerFile
getClientClassDirectory()
Returns the clientClassDirectory of this WorkerString
getClientConnectionAddress()
Returns the client connection address this Worker, which could be a hostname, IP, FQDN, service name, endpoint, etc.File
getCompiledClassDirectory()
Returns the compiledClassDirectory of this WorkerString
getDispatcherHostName()
Returns the dispatcherHostName of this WorkerString
getDispatcherNameForDiscovery()
Returns the name of this dispatcher used by etcd for discoveryint
getHeapSizeMB()
Returns the heapSizeMB of this Workerio.deephaven.enterprise.dispatcher.client.DispatcherClientConstants.PostedWorkerStatus
getLastPostedStatus()
Returns the last posted status for this Worker; Note it can be null if no status posted yet.List<String>
getLatestErrorMessages()
Returns the last few lines captured from the worker's syserr.String
getName()
Returns the name of this Worker.int
getPid()
Returns the pid of this WorkerOptionalInt
getPort(String protocol)
Returns the port of this WorkerProcessEventLogFormat2Logger
getProcessEventLogLogger()
Returns the processEventLogLogger of this WorkerString
getProcessInfoId()
Returns the unique id of this Worker processdefault String
getProcessUserName()
Returns the system userName which should run this WorkerList<io.deephaven.enterprise.dispatcher.client.WorkerProtocol>
getProtocols()
The protocol that should be used to communicate with this worker.RemoteProcessingRequest
getRemoteProcessingRequest()
Returns the remoteProcessingRequest of this Workerlong
getTimeToLiveExpiration()
Return the worker's TTL expiration (in millis since the epoch).String
getUserName()
Returns the userName of this WorkerString
getWorkerId()
Returns the id of this WorkerString
getWorkerNonce()
Returns the nonce for registering this worker processboolean
implementsProtocol(String protocol)
Does this worker implement a given protocol?boolean
isFinished()
Returns the isFinished status of this Workerboolean
isJvmDestroySent()
Returns the isJvmDestroySent status of this Workerboolean
isRegistered()
Returns true if this worker is registered.boolean
isTerminateRequestSent()
Returns the isTerminateRequestSent status of this Workervoid
setCancelledTimeNS(long cancelledTimeNS)
Set the cancelledTimeNS for this workervoid
setJvmDestroySent(boolean jvmDestroySent)
Sets the jvmDestroySent status of this Workervoid
setLastPostedStatus(io.deephaven.enterprise.dispatcher.client.DispatcherClientConstants.PostedWorkerStatus lastPostedStatus)
Set the last posted status for this Workerdefault void
setProcessUserName(String processUserName)
Sets a system userName which should run this Workervoid
setRegistered()
Set that this worker is registered.void
setTerminateRequestSent(boolean terminateRequestSent)
Set the terminateRequestSent for this workervoid
setTimeToLive(long ttl)
Set the time to live (in millis since the epoch).void
start()
Start theWorker
.void
terminate()
Terminate theWorker
.
-
Field Details
-
Method Details
-
start
Start theWorker
.- Throws:
WorkerControlStartException
- If an error occurs starting the Worker
-
terminate
void terminate()Terminate theWorker
. -
getName
String getName()Returns the name of this Worker.- Returns:
- the name of this Worker
-
getWorkerId
String getWorkerId()Returns the id of this Worker- Returns:
- the id of this Worker
-
getProcessInfoId
String getProcessInfoId()Returns the unique id of this Worker process- Returns:
- the unique id of this Worker process
-
getWorkerNonce
String getWorkerNonce()Returns the nonce for registering this worker process- Returns:
- the nonce used for registration
-
getUserName
String getUserName()Returns the userName of this Worker- Returns:
- the userName of this Worker
-
setProcessUserName
Sets a system userName which should run this Worker- Parameters:
processUserName
- the system user that should run this Worker
-
getProcessUserName
Returns the system userName which should run this Worker- Returns:
- the system userName which should run this Worker
-
getClientClassDirectory
File getClientClassDirectory()Returns the clientClassDirectory of this Worker- Returns:
- the clientClassDirectory of this Worker.
-
getRemoteProcessingRequest
RemoteProcessingRequest getRemoteProcessingRequest()Returns the remoteProcessingRequest of this Worker- Returns:
- the remoteProcessingRequest of this Worker.
-
getHeapSizeMB
int getHeapSizeMB()Returns the heapSizeMB of this Worker- Returns:
- the heapSizeMB of this Worker.
-
isRegistered
boolean isRegistered()Returns true if this worker is registered. -
setRegistered
void setRegistered()Set that this worker is registered. -
getPort
Returns the port of this Worker- Returns:
- the port of this Worker
-
getClientConnectionAddress
String getClientConnectionAddress()Returns the client connection address this Worker, which could be a hostname, IP, FQDN, service name, endpoint, etc. Clients will connect to the the Worker via ClientConnectionAddress:Port- Returns:
- the clientConnectionAddress of this Worker
-
getPid
int getPid()Returns the pid of this Worker- Returns:
- the pid of this Worker
-
isFinished
boolean isFinished()Returns the isFinished status of this Worker- Returns:
- the isFinished status of this Worker
-
getCompiledClassDirectory
File getCompiledClassDirectory()Returns the compiledClassDirectory of this Worker- Returns:
- the compiledClassDirectory of this Worker
-
getArtifactDirectory
File getArtifactDirectory()Returns the artifactDirectory of this Worker- Returns:
- the artifactDirectory of this Worker
-
getAuthToken
io.deephaven.enterprise.auth.AuthToken getAuthToken()Returns the auth token for this Worker -
getCancelledTimeNS
long getCancelledTimeNS()Returns the cancelledTimeNS of this Worker- Returns:
- the cancelledTimeNS of this Worker
-
getLastPostedStatus
io.deephaven.enterprise.dispatcher.client.DispatcherClientConstants.PostedWorkerStatus getLastPostedStatus()Returns the last posted status for this Worker; Note it can be null if no status posted yet.- Returns:
- the last posted status for this Worker
-
setCancelledTimeNS
void setCancelledTimeNS(long cancelledTimeNS)Set the cancelledTimeNS for this worker- Parameters:
cancelledTimeNS
- the port for this worker
-
isTerminateRequestSent
boolean isTerminateRequestSent()Returns the isTerminateRequestSent status of this Worker- Returns:
- the isTerminateRequestSent status of this Worker
-
setTerminateRequestSent
void setTerminateRequestSent(boolean terminateRequestSent)Set the terminateRequestSent for this worker- Parameters:
terminateRequestSent
- status for this worker
-
isJvmDestroySent
boolean isJvmDestroySent()Returns the isJvmDestroySent status of this Worker- Returns:
- the isJvmDestroySent status of this Worker
-
setJvmDestroySent
void setJvmDestroySent(boolean jvmDestroySent)Sets the jvmDestroySent status of this Worker- Parameters:
jvmDestroySent
- status of this Worker
-
getProcessEventLogLogger
ProcessEventLogFormat2Logger getProcessEventLogLogger()Returns the processEventLogLogger of this Worker- Returns:
- the processEventLogLogger of this Worker
-
getDispatcherHostName
String getDispatcherHostName()Returns the dispatcherHostName of this Worker- Returns:
- the dispatcherHostName of this Worker
-
getDispatcherNameForDiscovery
String getDispatcherNameForDiscovery()Returns the name of this dispatcher used by etcd for discovery- Returns:
- the discovery name for this dispatcher
-
getProtocols
List<io.deephaven.enterprise.dispatcher.client.WorkerProtocol> getProtocols()The protocol that should be used to communicate with this worker. Values that are currently defined are "Enterprise", "EnterpriseWebsocket" or "Community", but the dispatcher itself does not care, it just passes it to the client- Returns:
- the protocols that the worker implement
-
implementsProtocol
Does this worker implement a given protocol? -
getLatestErrorMessages
Returns the last few lines captured from the worker's syserr.- Returns:
- the last few lines from the worker's syserr
-
getTimeToLiveExpiration
long getTimeToLiveExpiration()Return the worker's TTL expiration (in millis since the epoch).- Returns:
- the maximum time that the worker has renewed it's TTL
-
setTimeToLive
void setTimeToLive(long ttl)Set the time to live (in millis since the epoch). -
setLastPostedStatus
void setLastPostedStatus(io.deephaven.enterprise.dispatcher.client.DispatcherClientConstants.PostedWorkerStatus lastPostedStatus)Set the last posted status for this Worker
-