EvPeriodic::__construct

(PECL ev >= 0.2.0)

EvPeriodic::__constructConstrói objeto observador EvPeriodic

Descrição

public EvPeriodic::__construct(
     float $offset ,
     string $interval ,
     callable $reschedule_cb ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
)

Constrói o objeto observador EvPeriodic e o inicia automaticamente. O método EvPeriodic::createStopped() cria o observador periódico parado.

Parâmetros

offset

Veja Modos de operação do observador periódico

interval

Veja Modos de operação do observador periódico

reschedule_cb

Reprograma retorno de chamada. Você pode passar null. Veja Modos de operação do observador periódico

callback

Veja Retornos de chamada do observador.

data

Dados personalizados associados ao observador.

priority

Prioridade do observador

Exemplos

Exemplo #1 Temporizador periódico. Usar retorno de chamada de reagendamento

<?php
// Marca a cada 10,5 segundos

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

Exemplo #2 Temporizador periódico. Marca a cada 10,5 segundos a partir de agora

<?php
// Marca a cada 10,5 segundos a partir de agora
$w = new EvPeriodic(fmod(Ev::now(), 10.5), 10.5, NULL, function ($w, $revents) {
echo
time(), PHP_EOL;
});
Ev::run();
?>

Exemplo #3 Observador de hora em hora

<?php
$hourly
= EvPeriodic(0, 3600, NULL, function () {
echo
"uma vez por hora\n";
});
?>

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
0
1187328898 at qq dot com
6 years ago
function reschedule_cb_10s ($watcher, $now) {
return $now + 10.;
}

//PHP7.0+版本不支持reschedule_cb模式
// PHP5.6测试通过
$w5 = new EvPeriodic(0.0, 0.0, "reschedule_cb_10s", function ($w, $revents) {
echo "w5:enter:", time(), PHP_EOL;
// sleep(3);
echo "w5:end:", time(), PHP_EOL;
});

Ev::run();
To Top