1 votes

Comment exécuter du code PHP sous Linux toutes les 500 millisecondes ?

J'ai un serveur http sous Linux.
J'ai un code PHP qui stocke des variables dans le cache à l'aide de memcache et j'aimerais que ce code soit exécuté toutes les 500 millisecondes lorsque le serveur est en cours d'exécution, même après un redémarrage du serveur.
Je pensais mettre en place un service mais je n'ai pas beaucoup d'expérience avec Linux donc je ne sais pas comment faire ou si c'est même la bonne approche.
J'ai également entendu parler des cron-jobs, mais je constate qu'ils fonctionnent par minutes et non par secondes.
Comment exécuter un code PHP sous Linux toutes les 500 millisecondes (un code serait utile) ?

1voto

noreabu Points 176

Vous pouvez utiliser un simple Shell-Shell pour cela :

#!/bin/bash
while true; do
    php /path/to/your/script.php & sleep 0.5s;
done

Le '&' va forcer le processus en arrière-plan, de sorte que le timing devrait être assez précis. Je suppose qu'au bout d'un certain temps, il sera désynchronisé par rapport à une horloge réelle, donc vous pouvez soit ajouter des horodatages à ce que fait votre script, soit utiliser une approche avec un daemon qui utilise l'heure du système.

(Merci pour les commentaires)

Je recommande d'ajouter ce script avec systemctl. Ce tutoriel semble parfait pour cela : Créer mes propres fichiers de service systemd

0voto

nobody Points 4092

Puisque vous êtes familier avec PHP, vous pouvez créer un daemon/service PHP. J'ai créé un service PHP pour moi-même une fois parce que je devais utiliser une bibliothèque qui n'était disponible qu'en PHP. Il fonctionne sans problème depuis de nombreuses années.

Voici quelques informations sur les démons PHP :

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X