The EvPeriodic classIntroductionPeriodic watchers are also timers of a kind, but they are very versatile. Unlike EvTimer , EvPeriodic watchers are not based on real time(or relative time, the physical time that passes) but on wall clock time(absolute time, calendar or clock). The difference is that wall clock time can run faster or slower than real time, and time jumps are not uncommon(e.g. when adjusting it).
EvPeriodic
watcher can be configured to trigger after some specific point in time.
For example, if an
EvPeriodic
watcher is configured to trigger
"in 10 seconds"
(e.g.
EvLoop::now
+
As with timers, the callback is guaranteed to be invoked only when the point in time where it is supposed to trigger has passed. If multiple timers become ready during the same loop iteration then the ones with earlier time-out values are invoked before ones with later time-out values (but this is no longer true when a callback calls EvLoop::run recursively). Class synopsis
EvPeriodic
class EvPeriodic
extends
EvWatcher
{
/* Properties */
public
$offset;
public
$interval;
/* Inherited properties */
public
$is_active;
public
$data;
public
$is_pending;
public
$priority;
/* Methods */
public
__construct(
float $offset
,string $interval
,callable $reschedule_cb
,callable $callback
,mixed $data
= null
,int $priority
= 0
) public
void again()
public
float at()
final
public
static
EvPeriodic createStopped(
float $offset
,float $interval
,callable $reschedule_cb
,callable $callback
,mixed $data
= null
,int $priority
= 0
) public
void set(
float
$offset
,
float
$interval
)/* Inherited methods */
public
int EvWatcher::clear()
public
void EvWatcher::feed(
int
$revents
)public
EvLoop EvWatcher::getLoop()
public
void EvWatcher::invoke(
int
$revents
)public
bool EvWatcher::keepalive(
bool
$value
= ?)public
void EvWatcher::setCallback(
callable
$callback
)public
void EvWatcher::start()
public
void EvWatcher::stop()
}Properties
|