(PECL ev >= 0.2.0)
EvTimer::createStopped — Создает остановленный наблюдатель EvTimer
$after
,
float
$repeat
,
callable
$callback
[,
mixed
$data
= NULL
[,
int
$priority
= 0
]] ) : EvTimerСоздает остановленный наблюдатель 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();
?>