Maison >développement back-end >Tutoriel Python >Comment puis-je planifier efficacement des fonctions récurrentes en Python ?
Planification de fonctions récurrentes en Python
En Python, vous souhaiterez peut-être exécuter une fonction à plusieurs reprises à des intervalles spécifiques. Ceci peut être réalisé en utilisant différentes approches.
Une méthode simple consiste à utiliser une boucle while avec time.sleep() pour suspendre l'exécution avant de réexécuter la fonction. Cependant, cette approche n'est pas préférée car elle n'exploite pas efficacement la boucle d'événements de Python.
Utilisation du module sched
Une solution plus efficace consiste à utiliser le module sched, qui fournit un planificateur d'événements à usage général. Il vous permet de planifier des tâches à exécuter à des heures ultérieures.
Le code suivant montre comment utiliser le module sched :
import sched, time def do_something(scheduler): # schedule the next call first scheduler.enter(60, 1, do_something, (scheduler,)) print("Doing stuff...") my_scheduler = sched.scheduler(time.time, time.sleep) my_scheduler.enter(60, 1, do_something, (my_scheduler,)) my_scheduler.run()
Ce code crée un planificateur, planifie une fonction do_something à être exécuté en 60 secondes et l'exécute à plusieurs reprises par la suite.
Utilisation de la boucle d'événement Bibliothèques
Si votre application utilise déjà une bibliothèque de boucles d'événements telle que asyncio, trio ou tkinter, vous pouvez planifier des tâches à l'aide de ses méthodes. Par exemple, dans asyncio, vous pouvez utiliser la méthode create_task() pour planifier l'exécution d'une fonction dans la boucle d'événements.
En tirant parti des boucles d'événements, vous vous assurez que votre programme reste réactif pendant l'exécution des tâches planifiées. Cette approche est plus efficace et recommandée pour la plupart des applications.
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!