set_timer/3—set a timer on an event object that will expire after a specified delay
The syntax for set_timer/3 is as follows:
set_timer/3 arguments
Argument | Mode | Type | Description |
---|---|---|---|
$OBJECT | Input | OBJECT | Specifies the event object |
$DURATION | Input | INTEGER | Specifies the duration until timer expiration, in seconds |
$INFO | Input | STRING | Specifies the information item as timer_info |
Use the set_timer/3 to set a timer on event $OBJECT that will expire after $DURATION seconds and to trigger a timer rule with timer information matching $INFO.
The value of $INFO will be substituted for the timer_info in matching timer rules when the timer expires.
set_timer/3 example
triggers
{
set_timer($E,$E.mc_timeout,EventTimeout);
}
END
timer TimeoutTimer: EVENT($E) where [ $E.status != CLOSED ]
timer_info: == EventTimeout
{
$E.status = CLOSED;
}
END
When a new event is received and its mc_timeout slot is greater than 0, a timer will be set on the event to expire after that timeout period. The timer rule in the example will match, because it tests timer_info to ensure that it is equal to EventTimeout.