Interface PersistentQueryHandle
- All Known Implementing Classes:
CommunityPersistentQueryHandle,DoNothingHandle,EnterprisePersistentQueryHandle,PersistentQueryHandleBase
public interface PersistentQueryHandle
This interface defines a local handle to a remote Persistent Query. The query may be an Enterprise worker, or a
Community worker.
-
Method Summary
Modifier and TypeMethodDescriptiondefault booleanCheck whether the class of this object can attempt to restore already running workers.getState()Get the current state object for the Persistent Query.@NotNull ObjectGet the object used to protect state changes.longGet the currently running version of the Persistent Query.@Nullable WorkerHandleGet theWorkerHandlefor an active worker.default booleanrestore(@NotNull PersistentQueryState oldState, long deadlineMillis) Attempt to restore a worker.voidsetReplicaSlot(int replicaSlot) Set the replica slot for this handle.voidshutdown(@Nullable UserContext userContext) Shutdown the worker, if it is running.voidstart(long shouldStopTimeMillis) Start the worker.
-
Method Details
-
getVersion
long getVersion()Get the currently running version of the Persistent Query.- Returns:
- the version of the running query
-
getState
PersistentQueryState getState()Get the current state object for the Persistent Query.- Returns:
- the current state
-
start
void start(long shouldStopTimeMillis) Start the worker. Only one ofstart()orrestore()should be called after construction.- Parameters:
shouldStopTimeMillis- The scheduled stopping time for scheduled configs, or zero otherwise.
-
restore
Attempt to restore a worker. Only one ofstart()orrestore()should be called after construction.- Parameters:
oldState- the old PQ state from where to attempt to restoredeadlineMillis- the deadline for restoring this worker (in millis since the epoch)- Returns:
- true if the restore attempt succeeded
-
canTryToRestore
default boolean canTryToRestore()Check whether the class of this object can attempt to restore already running workers.- Returns:
- true if the class of this object can attempt to restore an already running worker
-
shutdown
Shutdown the worker, if it is running. This method blocks until shutdown is complete.- Parameters:
userContext- the user attempting the shutdownnullindicates the controller itself.
-
setReplicaSlot
void setReplicaSlot(int replicaSlot) Set the replica slot for this handle.- Parameters:
replicaSlot- the replica slot.
-
getWorkerHandle
Get theWorkerHandlefor an active worker. May return null if the worker is not running.- Returns:
- the
WorkerHandleor null if the worker is not running
-
getStateLock
Get the object used to protect state changes. This can be used when coordinated changes need to be made to more than one handle at a time, for example in the case of a state swap (see QueryTracker#enqueueShuffle()- Returns:
- the state lock
-