EvPeriodic ウォッチャーは、パラメータ offset、interval および reschedule_cb の設定によってさまざまなモードで動作します。
offset
interval
reschedule_cb
0
null
N
これを使うと、システムの時刻に流されないタイマーを作れます。
<?php $hourly = EvPeriodic(0, 3600, NULL, function () { echo "once per hour\n"; }); ?>
3600
mod
1e30
例1 再スケジュールコールバックの利用
<?php // 10.5 秒おきに繰り返します 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(); ?>