%DeepSee.WorkMgr
class %DeepSee.WorkMgr extends %Library.RegisteredObject
Utility class that provides an API for managing DeepSee tasks.This is an internal utility used by DeepSee.
Method Inventory
- %AgentsAvailable()
- %AttachToQueue()
- %CloseTask()
- %CreateAgents()
- %CreateTaskGroup()
- %DequeueTask()
- %DestroyTaskGroup()
- %DetachFromQueue()
- %ExecuteTask()
- %InitializeWorkMgr()
- %IsActive()
- %KillAgents()
- %KillLog()
- %KillTasksForGroup()
- %Log()
- %PrintActiveTasks()
- %PrintLog()
- %PrintPendingTasks()
- %PrintTaskGroups()
- %QueueTask()
- %Reset()
- %SetLoggingOptions()
- %Test()
- %WaitForTaskGroup()
Parameters
parameter EVENTNAME = ^DeepSee.Tasks.;
Name of system used to talk to agents.
parameter TIMEOUT = 0;
Timeout value (seconds) for events.
If no events are received, then the agent will shut itself down.
Methods
classmethod %AgentsAvailable(pPriority="H", Output pStatus) as %Integer
- NOT IMPLEMENTED -
Agents are always available and created as needed. There is no need to test anymore.
classmethod %AttachToQueue(pQueueName As %String = "", Output pStatus As %Status = $$$OK) as %SYSTEM.WorkMgr
Look up a token to reattach to a given WorkMgr queue.
After successfully serializing a WorkMgr instance, through either attachment to a pre-existing queue or initialization of a new queue,
the storage location for the provided pQueueName is marked with the null string to provide an indication the queue is
currently open and working.
This is called as the callback to %ExecuteTask which cleans up the management global. This
method will also close out the WorkQ if the group was created with pWait = 0.
- NOT IMPLEMENTED -
This is handled by the WorkQMgr as part of task queueing operations
classmethod %CreateTaskGroup(Output pTaskGroup As %String, pWait As %Boolean = 0, pName As %String = "", pRequestWorkMgr=0, Output pWorkMgr=$$$NULLOREF) as %Status
Create a unique idenitfier for a task group.
The caller may optionally request an object reference with pRequestWorkMgr=1 which
will be returned via pWorkMgr for customized use.
classmethod %DequeueTask(pTaskGroup As %String, pParameters As %List, pSuppressArchive As %Boolean = 0) as %Status
This is called in %ExecuteTask to mark the task "active" in the process logging.
Close down all work being done by this task group
classmethod %DetachFromQueue(pQueueName As %String = "", ByRef pWorkMgr As %SYSTEM.WorkMgr = $$$NULLOREF) as %Status
Detach from a given WorkMgr queue and store the current token needed to reattach.
If the storage location has been deleted before detaching from the queue (eg: by a cancellation operation),
then the token is discarded.
classmethod %ExecuteTask(pTaskGroup As %String, pParameters As %List, pSettings As %String = "") as %Status
This is run by the worker and will do the actual work of processing tasks via the work queue manager
classmethod %InitializeWorkMgr(pQueueName, Output pStatus) as %SYSTEM.WorkMgr
Create a new %SYSTEM.WorkMgr instance for use managing this DeepSee task queue.
classmethod %IsActive() as %Boolean
WorkQ agents will be made available as needed. This test always returns True
Find all open WorkQ manager instances and shut them down
Kill the agent log.
This performs the actual cleanup work to remove all tasks assigned to a particular logical work group.
classmethod %Log(pMsg As %String)
Log a message to the agent log.
classmethod %PrintActiveTasks()
Print list of active tasks out to the console.
classmethod %PrintLog()
Print contents of the (global-based) agent log to the console.
classmethod %PrintPendingTasks()
Print list of pending (queued) tasks out to the console.
classmethod %PrintTaskGroups()
Print current task groups to the console.
classmethod %QueueTask(pTaskGroup As %String = "", pTaskType As %String, pCubeName As %String, pQueryKey As %String = "", pData As %String = "", pData2 As %String = "", pData3 As %String = "", pSQLParams As %String = "", pSuppressArchive As %Boolean = 0, ByRef pWorkMgr As %SYSTEM.WorkMgr = $$$NULLOREF) as %Status
This is called from the foreground to
add a task to the queue of background tasks.
pTaskGroup must be defined in order to properly assign individual tasks to a particular work queue. The caller may optionally supply an object reference to a pWorkMgr to add the task to that custom work queue.
pTaskGroup must be defined in order to properly assign individual tasks to a particular work queue. The caller may optionally supply an object reference to a pWorkMgr to add the task to that custom work queue.
classmethod %Reset() as %Status
Reset the WorkMgr.
This stops all running agents, clears out all tasks, and clears the logs.
This stops all running agents, clears out all tasks, and clears the logs.
classmethod %SetLoggingOptions(pUseArchive=0, pLogSize=100, pLogAll=0)
Turn on logging for the DeepSee background agents. These will be reset during a call to %KillLog().
classmethod %Test(pTaskCount=25, pTimeOut=0, pClean=1) as %Status
Perform simple test of DeepSee WorkMgr.
This will kill any pending task.
classmethod %WaitForTaskGroup(ByRef pTaskGroup As %String = "", Output pCompleted As %Boolean, pTimeOut As %Integer = 0, ByRef pWorkMgr As %SYSTEM.WorkMgr = $$$NULLOREF, Output pMaxTaskGroupWorkers As %Integer, Output pMaxWorkersOverallSoFar As %Integer) as %Status
Wrapper for the WorkMgr:Sync() that parallels the original %DeepSee.TaskMaster version.
The caller may optionally supply an object reference to a pWorkMgr for custom use.
Inherited Members
Inherited Methods
- %AddToSaveSet()
- %ClassIsLatestVersion()
- %ClassName()
- %ConstructClone()
- %DispatchClassMethod()
- %DispatchGetModified()
- %DispatchGetProperty()
- %DispatchMethod()
- %DispatchSetModified()
- %DispatchSetMultidimProperty()
- %DispatchSetProperty()
- %Extends()
- %GetParameter()
- %IsA()
- %IsModified()
- %New()
- %NormalizeObject()
- %ObjectModified()
- %OriginalNamespace()
- %PackageName()
- %RemoveFromSaveSet()
- %SerializeObject()
- %SetModified()
- %ValidateObject()