Timer
Contains APIs to maintain timer tasks. Can schedule, de-schedule functions and set the timer frequency.
If the timer frequency isn't set on the process it should be set using .d.prcl.setTimerFreq. Tasks can be setup at a specified frequency and optionally have start and end times.
The interval can be specified to millisecond granularity.
Warning
Start, end and run times are all local time
User code should avoid overwriting the .z.ts definition
.d.prcl.activateFunct¶
Activate a timer function by ID.
Parameter:
| Name | Type | Description |
|---|---|---|
| id | int | Timer ID |
Example:
.d.prcl.activateFunct[2i]
.d.prcl.addFunctToTimer¶
Adds the named function to the timer and assigns it a unique id. If funct is already scheduled and is active the function logs an error message and returns. Can optionally specify start and end times.
Parameters:
| Name | Type | Description |
|---|---|---|
| funct | symbol | Function name |
| functParams | list | List of function parameters |
| stDT | datetime | Start time |
| endDT | datetime | End time |
| repFreq | int | Repeat frequency (milliseconds) |
| act | boolean | Schedule function as active |
Example: Run immediately every second indefinitely
.d.prcl.addFunctToTimer[`runJob; (); 0Nz; 0Wz; 1000i; 1b]
Example: Run on the hour every hour until midnight
.d.prcl.addFunctToTimer[`runJob; (`EUR; 1000i); "z"$.z.D+3600000 xbar .z.T; 1+"z"$.z.D+00:00:00.0; 3600000i; 1b]
.d.prcl.deactFunct¶
Deactivate a timer function.
Parameter:
| Name | Type | Description |
|---|---|---|
| id | int | Timer ID |
Example:
.d.prcl.deactFunct[2i]
.d.prcl.forceFunctToTimer¶
Force function to timer even if already exists. Same behavior as .d.prcl.addFunctToTimer.
Parameters:
| Name | Type | Description |
|---|---|---|
| funct | symbol | Function name |
| functParams | list | List of function parameters |
| stDT | datetime | Start time |
| endDT | datetime | End time |
| repFreq | int | Repeat frequency (milliseconds) |
| act | boolean | Schedule function as active |
Example: Run immediately every second indefinitely
.d.prcl.forceFunctToTimer[`runJob; (); 0Nz; 0Wz; 1000i; 1b]
Example: Run on the hour every hour until midnight
.d.prcl.forceFunctToTimer[`runJob; (`EUR; 1000i); "z"$.z.D+3600000 xbar .z.T; 1+"z"$.z.D+00:00:00.0; 1b]
.d.prcl.getTimerDetailsByID¶
Returns the function details for a given ID. Same return format as .d.prcl.getTimerDetails
Parameter:
| Name | Type | Description |
|---|---|---|
| id | int | Function ID |
Returns:
| Type | Description |
|---|---|
| ([actID:int] nxtRun:datetime; functName:symbol; functParams:list; start:datetime; end:datetime; rptFreq:float; active:boolean) Table of timer details |
Example:
.d.prcl.getTimerDetailsByID[3i]
/=> actID| nxtRun functName functParams start end repeatFreq active
/=> -----| ---------------------------------------------------------------------------------------------
/=> 3 | 2017.02.07T11:35:16.334 runJob `EUR 1000i 2017.02.07T11:30:16.334 0w 0.0001157407 1
.d.prcl.getTimerDetails¶
Return the timer details for a list of functions
Parameter:
| Name | Type | Description |
|---|---|---|
| functList | symbol[] | List of functions |
Returns:
| Type | Description |
|---|---|
| table ([actID:int] nxtRun:datetime; functName:symbol; functParams:list; start:datetime; end:datetime; rptFreq:float; active:boolean) | Table of timer details |
Example:
.d.prcl.getTimerDetails[`.page.clearCache`runJob]
/=> actID| nxtRun functName functParams start end repeatFreq active
/=> -----| ----------------------------------------------------------------------------------------------------
/=> 1 | 2017.02.07T11:30:42.383 .page.clearCache 2017.02.07T10:31:42.383 0w 0.0006944444 1
/=> 3 | 2017.02.07T11:30:26.334 runJob `EUR 1000i 2017.02.07T11:30:16.334 0w 0.0001157407 1
.d.prcl.removeFuncFromTimerByFParam¶
Remove specific function and parameter combination from timer
Parameters:
| Name | Type | Description |
|---|---|---|
| funct | symbol | Function name |
| params | list | List of parameters. Needs to be enlisted to match record in timer table |
Example: Delete all instances of function
.d.prcl.addFunctToTimer[`runJob; (`EUR;1000i); 0Nz; 0Wz; 10000i; 1b]
.d.prcl.removeFuncFromTimerByFParam[`runJob; enlist (`EUR;1000i)]
.d.prcl.removeFuncFromTimerByID¶
Remove function from timer for a specific ID.
Parameter:
| Name | Type | Description |
|---|---|---|
| id | int | ID of function |
Example:
.d.prcl.removeFuncFromTimer[2i]
.d.prcl.removeFuncFromTimer¶
Remove function from timer. If more than one instance of the function is on the timer, the second parameter dictates whether to delete all or take no action. If set to true, will delete all.
Parameters:
| Name | Type | Description |
|---|---|---|
| funct | symbol | Function name |
| frDelete | boolean | Delete all instances of function if true |
Example: Delete all instances of function
.d.prcl.removeFuncFromTimer[`runJob; 1b]
.d.prcl.setTimerFreq¶
Set the timer frequency
Parameter:
| Name | Type | Description |
|---|---|---|
| timeFreq | int | Timer frequency (milliseconds) |
Example:
.d.prcl.setTimerFreq[1000]