A classe EvPeriodic
(PECL ev >= 0.2.0)
Introdução
Os observadores periódicos também são uma espécie de cronômetros, mas são muito versáteis.
Ao contrário do EvTimer , os observadores EvPeriodic não são baseados em tempo real (ou tempo relativo, o tempo físico que passa), mas no tempo do relógio de parede (tempo absoluto, calendário ou relógio). A diferença é que o tempo do relógio de parede pode ser mais rápido ou mais lento que o tempo real, e os saltos no tempo não são incomuns (por exemplo, ao ajustá-lo).
O observador EvPeriodic p
ode ser configurado para ser acionado após algum momento específico.
Por exemplo, se um
observador EvPeriodic
estiver configurado para acionar
"em 10 segundos"
(por exemplo,
EvLoop::now()
+
10.0
,
ou seja, um tempo absoluto, não um atraso), e o relógio do sistema for redefinido para
janeiro do ano anterior,
então levará um ano ou mais para acionar o evento (diferentemente de um
EvTimer,
que ainda seria acionado aproximadamente
10
segundos após iniciá-lo, pois usa um tempo limite relativo).
Assim como com os temporizadores, é garantido que o retorno de chamada seja invocado somente quando o momento em que ele deveria ser acionado tiver passado. Se vários temporizadores ficarem prontos durante a mesma iteração do loop, então aqueles com valores de tempo limite anteriores serão invocados antes daqueles com valores de tempo limite posteriores (mas isso não é mais verdade quando um retorno de chamada chama EvLoop::run() recursivamente).
Resumo da classe
float
$offset
,string
$interval
,callable
$reschedule_cb
,callable
$callback
,mixed
$data
= null
,int
$priority
= 0
)
float
$offset
,float
$interval
,callable
$reschedule_cb
,callable
$callback
,mixed
$data
= null
,int
$priority
= 0
): EvPeriodic
Propriedades
- offset
-
Ao repetir, contém o valor de deslocamento, caso contrário, este é o ponto absoluto no tempo (o valor de deslocamento passado para EvPeriodic::set(), embora libev possa modificar este valor para melhor estabilidade numérica).
- interval
-
O valor do intervalo atual. Pode ser modificado a qualquer momento, mas as alterações só terão efeito quando o cronômetro periódico for acionado ou EvPeriodic::again() estiver sendo chamado.
Table of Contents
- EvPeriodic::again — Simply stops and restarts the periodic watcher again
- EvPeriodic::at — Returns the absolute time that this watcher is supposed to trigger next
- EvPeriodic::__construct — Constructs EvPeriodic watcher object
- EvPeriodic::createStopped — Create a stopped EvPeriodic watcher
- EvPeriodic::set — Configures the watcher