In role Scheduler§
See primary documentation in context for method cue
method cue(&code, Instant :$at, :$in, :$every, :$times = 1; :&catch --> Cancellation)
Schedules a callable (&code
) for execution and returns an instantiated Cancellation
object to cancel the scheduling of the code for execution (which is especially important if you specify the :every ( time )
named parameter). The adverbs control when and how the code is run:
$at
can be anInstant
before which the code won't be run. Alternatively$in
is the number of seconds (possibly fractional) to wait before running the code. If$at
is in the past or$in
is negative, the delay is treated as zero. Implementations may equate to zero very small values (e.g. lower than 0.001s) of$in
or result of$at
- now.If
$every
is specified, it is interpreted as the number of seconds (possibly fractional) to wait before re-executing the code. Implementations may treat too-small values as lowest resolution they support, possibly warning in such situations; e.g. treating0.0001
as0.001
.$times
tells the scheduler how many times to run the code.&catch
is called with theException
as its sole argument if&code
dies.If
$at
or$in
areInf
,&code
will never be run; if$every
isInf
,&code
will only be run once. If any of the three are-Inf
,&code
will be run immediately. If any of the three areNaN
, anX::Scheduler::CueInNaNSeconds
exception will be thrown. This only applies to releases 2019.05 and later.
One should call the cancel
method on the returned Cancellation
object to cancel the (possibly repeated) cueing of the code.