Call method in background process
Hello everybody.
I have task to find out possibility call method from background task. I need run some class with methods. I've found out than I can run it via ^%ZSTART routine. And now I wanna to learn is it possible to call this class and run it's methods.
Thank you
Comments
Hi Alexandr.
If you are looking to run a task at specific times, you could create a new task which extends %SYS.Task.Definition to then be selectable as an option from the task manager.
For example, I have a folder which I need to periodically delete files older than x days.
To achieve this, I have a class that looks like this:
Class DEV.Schedule.Purge Extends %SYS.Task.Definition
{
Parameter TaskName = "Purge Sent Folder";
Property Directory As %String;
Property Daystokeep As %Integer(VALUELIST = ",5,10,15,20,25,30") [ InitialExpression = "30" ];
Method OnTask() As %Status
{
Set tsc = ..PurgeSentFolder(..Directory,..Daystokeep,"txt")
Quit tsc
}
Method PurgeSentFolder(Directory As %String, DaysToKeep As %Integer, Extention As %String) As %Status
{
// Calculate the oldest date to keep files on or after
set BeforeThisDate = $zdt($h-DaysToKeep_",0",3)
// Gather the list of files in the specified directory
set rs=##class(%ResultSet).%New("%File:FileSet")
Set ext = "*."_Extention
do rs.Execute(Directory,ext,"DateModified")
// Step through the files in DateModified order
while rs.Next() {
set DateModified=rs.Get("DateModified")
if BeforeThisDate]DateModified {
// Delete the file
set Name=rs.Get("Name")
do ##class(%File).Delete(Name)
}
// Stop when we get to files with last modified dates on or after our delete date
if DateModified]BeforeThisDate
set tSC = 1
}
quit tSC
}
}
Then I created a new task in the scheduler, selected the namespace where the new class exists, and then filled in the properties and times I want the task to run.
Thank you very much. I meant that one job which is everything in process waits for being called with another. One process call other
For simple communication you can use Cache Event API.
To distribute work, there's a number of options, discussed here.