(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();
?>