La classe EvPeriodic
(PECL ev >= 0.2.0)
Introduction
Les watchers périodiques sont des sortes de minuteurs, mais ils sont très polyvalents.
Contrairement à EvTimer, les watchers EvPeriodic ne sont pas basés sur un temps réel (ou un temps relatif, le temps physique qui passe), mais sur un temps d'horloge (temps absolu, calendaire, ou d'horloge). La différence est qu'un temps d'horloge peut être plus rapide ou plus lent qu'un temps réel, et les sauts dans le temps ne sont pas rares (i.e. lors d'un ajustement).
Un watcher EvPeriodic peut être configuré pour
être lancé après des points spécifiques dans le temps. Par exemple,
si un watcher EvPeriodic est configuré pour
se lancer "dans 10 secondes" (i.e.
EvLoop::now() + 10.0
,
i.e. un temps absolu, et non un délai), et que l'horloge système
est ré-initialisée à Janvier de l'année dernière,
alors cela prendra une année et plus à lancer l'événement (contrairement
à EvTimer qui sera lancé 10
secondes après son démarrage, sachant qu'il utilise un délai maximal d'attente
relatif).
Comme pour les minuteurs, il est garantie que la fonction de rappel soit appelée uniquement lorsque le point dans le temps où il est supposé se lancer ne soit passé. Si plusieurs minuteurs deviennent prêts en même temps pendant la même itération de boucle, alors ceux dont les valeurs de délai maximal d'attente sont les plus proches seront appelées avant ceux qui ont des valeurs de délai maximal d'attente plus éloignés (mais ceci n'est plus vrai lorsqu'une fonction de rappel appelle récursivement la méthode EvLoop::run()).
Synopsis de la classe
$offset
,
string
$interval
,
callable
$reschedule_cb
,
callable
$callback
[,
mixed
$data
= NULL
[,
int
$priority
= 0
]] )$offset
,
float
$interval
,
callable
$reschedule_cb
,
callable
$callback
[,
mixed
$data
= NULL
[,
int
$priority
= 0
]] ) : EvPeriodicPropriétés
- offset
-
Lors de la répétition, va contenir la valeur de la position, sinon, ce sera le point absolu dans le temps (la valeur de la position passée à la méthode EvPeriodic::set(), bien que libev peut modifier cette valeur pour une meilleure stabilité numérique).
- interval
-
La valeur de l'intervalle courant. Peut être modifié à tout moment, mais les modifications ne prennent effet que lorsque le minuteur périodique ne se lance, ou lorsque la méthode EvPeriodic::again() est appelée.
Sommaire
- EvPeriodic::again — Arrête et re-démarre le watcher périodique
- EvPeriodic::at — Retourne le temps absolu auquel ce watcher sera appelé la prochaine fois
- EvPeriodic::__construct — Construit un objet watcher EvPeriodic
- EvPeriodic::createStopped — Crée un watcher EvPeriodic stoppé
- EvPeriodic::set — Configure le watcher
Version en cache
24/12/2024 00:59:01 Cette version de la page est en cache (à la date du 24/12/2024 00:59:01) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-class.evperiodic.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.