©
本文档使用
php.cn手册 发布
(PECL ev >= 0.2.0)
EvPeriodic::__construct — Constructs EvPeriodic watcher object
$offset
, string $interval
, callable $reschedule_cb
, callable $callback
[, mixed $data
= NULL
[, int $priority
= 0
]] )Constructs EvPeriodic watcher object and starts it automatically. EvPeriodic::createStopped() method creates stopped periodic watcher.
offset
See Periodic watcher operation modes
interval
See Periodic watcher operation modes
reschedule_cb
Reschedule callback. You can pass NULL
. See
Periodic watcher operation
modes
callback
See Watcher callbacks .
data
Custom data associated with the watcher.
priority
Watcher priority
Returns EvPeriodic object on success.
Example #1 Periodic timer. Use reschedule callback
<?php
// Tick each 10.5 seconds
function reschedule_cb ( $watcher , $now ) {
return $now + ( 10.5 . - fmod ( $now , 10.5 ));
}
$w = new EvPeriodic ( 0. , 0. , "reschedule_cb" , function ( $w , $revents ) {
echo time (), PHP_EOL ;
});
Ev :: run ();
?>
Example #2 Periodic timer. Tick every 10.5 seconds starting at now
<?php
// Tick every 10.5 seconds starting at now
$w = new EvPeriodic ( fmod ( Ev :: now (), 10.5 ), 10.5 , NULL , function ( $w , $revents ) {
echo time (), PHP_EOL ;
});
Ev :: run ();
?>
Example #3 Hourly watcher
<?php
$hourly = EvPeriodic ( 0 , 3600 , NULL , function () {
echo "once per hour\n" ;
};
?>