Maison  >  Article  >  développement back-end  >  Comment effectuer la planification des tâches et les tâches planifiées en PHP ?

Comment effectuer la planification des tâches et les tâches planifiées en PHP ?

WBOY
WBOYoriginal
2023-05-12 18:51:211876parcourir

Dans le développement Web, de nombreux sites Web et applications doivent effectuer régulièrement certaines tâches, telles que nettoyer les données indésirables, envoyer des e-mails, etc. Afin d'automatiser ces tâches, les développeurs doivent implémenter des fonctions de planification de tâches et de tâches chronométrées. Cet article présentera comment implémenter la planification des tâches et les tâches chronométrées en PHP, ainsi que certaines bibliothèques et outils tiers couramment utilisés.

1. Planification des tâches
La planification des tâches fait référence à l'exécution de certaines tâches en fonction d'heures ou d'événements spécifiés. En PHP, une minuterie cron ou un mécanisme similaire peut être utilisé pour implémenter la planification des tâches. Normalement, la planification des tâches doit être effectuée sous la forme d'un script ou d'un processus autonome, plutôt que dans le cadre de l'application Web.

1. Utiliser Cron
Cron est un planificateur de tâches planifiées dans les systèmes de type Unix qui peut exécuter des commandes ou des scripts à des intervalles spécifiés ou à des moments spécifiques. Sous les systèmes Linux et Mac OS X, vous pouvez utiliser la commande crontab pour modifier et gérer les tâches Cron. Dans les systèmes Windows, un planificateur de tâches similaire est disponible.

Par exemple, si vous devez exécuter un script PHP à 22 heures tous les soirs, vous pouvez utiliser l'expression Cron suivante :

0 22 * /usr/bin/php /path/to/script.php

La signification de cette expression Oui, le script /script.php est exécuté une fois tous les soirs à 10 heures (l'heure est 22). D'autres astérisques indiquent n'importe quel mois (mois), n'importe quelle date (jour) et n'importe quelle semaine (semaine), c'est-à-dire qu'il sera exécuté tous les jours.

2. Utilisez des bibliothèques tierces
En plus de Cron, il existe de nombreuses bibliothèques PHP tierces qui peuvent être utilisées pour implémenter la planification des tâches. Ces bibliothèques offrent des fonctionnalités plus avancées telles que l'exécution simultanée, les files d'attente de tâches, la journalisation, etc.

Voici quelques bibliothèques de planification de tâches PHP couramment utilisées :

  • Composant Symfony Console : un composant pour écrire des applications en ligne de commande qui peuvent définir des commandes et ajouter des options et des paramètres.
  • Planification des tâches Laravel : le planificateur de tâches du framework Laravel prend en charge la définition de différents types de tâches, telles que les fermetures, les commandes et les événements.
  • Cron Expression : une bibliothèque PHP qui analyse et génère des expressions Cron, prenant en charge des intervalles de temps complexes et des règles de points temporels.
  • Planificateur de tâches Spatie : une bibliothèque de planification de tâches facile à utiliser qui prend en charge les appels en chaîne, les tâches de file d'attente et les fonctions de rappel personnalisées.

2. Tâches planifiées
Les tâches planifiées font référence à l'exécution de certaines tâches à des intervalles de temps spécifiés. Contrairement à la planification des tâches, les tâches planifiées sont généralement exécutées dans le cadre d'une application Web.

En PHP, vous pouvez utiliser les deux méthodes suivantes pour implémenter des tâches planifiées :

1. Utilisez la fonction sleep de PHP
Utilisez la fonction sleep() de PHP pour implémenter des tâches planifiées simples. Cette fonction suspend l'exécution du script jusqu'à ce que le temps spécifié soit écoulé. Par exemple, si vous devez exécuter une fonction toutes les 5 minutes, vous pouvez utiliser l'exemple de code suivant :

while (true) {

call_user_func('function_name');
sleep(300);

}

Ce code utilise la boucle infinie de PHP (while(true)), et utilise la fonction call_user_func() dans chaque boucle pour exécuter la fonction spécifiée. Le paramètre de la fonction sleep() est le nombre de secondes, ici il est fixé à 300 (soit 5 minutes).

2. Utiliser des bibliothèques tierces
Semblable à la planification des tâches, il existe de nombreuses bibliothèques PHP tierces qui peuvent être utilisées pour implémenter des tâches planifiées. Ces bibliothèques utilisent différentes méthodes telles que le polling, le multithreading, l'écoute d'événements, etc. Voici quelques bibliothèques de tâches planifiées PHP couramment utilisées :

  • ReactPHP : une bibliothèque PHP basée sur les événements qui prend en charge les E/S asynchrones, les tâches planifiées et le développement d'applications Web.
  • Swoole : un framework de communication réseau hautes performances qui peut remplacer directement PHP-fpm, prenant en charge des fonctionnalités telles que des minuteries, des multi-processus et des coroutines.
  • phoenix26420/php-timer : Une bibliothèque de tâches planifiées PHP légère qui prend en charge n'importe quel intervalle de temps et fonction de rappel.

3. Résumé
Dans le développement Web, la planification des tâches et les tâches planifiées sont des fonctions très importantes. En utilisant PHP, ils peuvent être implémentés via des minuteries Cron, des bibliothèques et des outils tiers. Les développeurs peuvent choisir la méthode la mieux adaptée aux besoins et à la taille de leur projet. Que vous utilisiez une simple fonction de veille PHP ou un framework ReactPHP ou Swoole avancé, vous devez prêter attention à la sécurité, à la fiabilité et à l'efficacité de l'exécution des tâches pour améliorer la qualité et la stabilité de votre application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn