(PECL ev >= 0.2.0)
EvTimer::createStopped — Создаёт остановленного наблюдателя EvTimer
$after
,$repeat
,$callback
,$data
= null
,$priority
= 0
Метод создаёт остановленного наблюдателя EvTimer. Метод не запускает наблюдателя автоматически, как это делает метод EvTimer::__construct().
after
Параметр after устанавливает количество секунд,
через которое запустится таймер.
repeat
Таймер автоматически остановится после истечения времени ожидания,
если время повтора равно 0.0.
При положительном значении таймер автоматически настроится на повторный запуск
через заданный в секундах интервал, пока таймер не остановят вручную.
callback
Смотрите страницу «Наблюдатели callback-функций».
data
Пользовательские данные, связанные с наблюдателем.
priority
Метод возвращает объект наблюдателя EvTimer, если завершается успешно.
Пример #1 Пример просмотра изменений в файле /var/log/messages. Избегаем пропущенные обновления с задержкой в одну секунду
<?php
$timer = EvTimer::createStopped(0., 1.02, function ($w) {
$w->stop();
$stat = $w->data;
// 1 секунда после последнего изменения файла
printf("Текущий размер: %ld\n", $stat->attr()['size']);
});
$stat = new EvStat("/var/log/messages", 0., function () use ($timer) {
// Сброс таймера наблюдателя
$timer->again();
});
$timer->data = $stat;
Ev::run();
?>