Maison > développement back-end > Tutoriel Python > Comment exécuter à plusieurs reprises une fonction Python sans tâche Cron ni épuisement des ressources ?

Comment exécuter à plusieurs reprises une fonction Python sans tâche Cron ni épuisement des ressources ?

Patricia Arquette
Libérer: 2024-12-18 21:36:18
original
277 Les gens l'ont consulté

How to Repeatedly Execute a Python Function Without a Cron Job or Resource Exhaustion?

Comment exécuter une fonction de manière répétée sans Cron

Les passionnés de Python sont souvent confrontés au défi d'exécuter perpétuellement une fonction à des intervalles spécifiés sans avoir besoin de configurations cron complexes. Une approche simple consiste à utiliser une simple boucle while.

while True:
    # Code executed here
    time.sleep(60)
Copier après la connexion

Ce code semble avoir pour objectif d'exécuter en continu une fonction toutes les 60 secondes. Cependant, cette approche comporte des pièges potentiels. Comme la boucle continue de s'exécuter sans fin, il existe un risque d'épuisement des ressources, entraînant un ralentissement des performances ou des pannes du système.

Pour résoudre ces problèmes en douceur, envisagez d'utiliser un planificateur d'événements tel que le module sched en Python.

import sched, time

def do_something(scheduler):
    # schedule the next call first
    scheduler.enter(60, 1, do_something, (scheduler,))
    print("Doing stuff...")
    # then do your stuff

my_scheduler = sched.scheduler(time.time, time.sleep)
my_scheduler.enter(60, 1, do_something, (my_scheduler,))
my_scheduler.run()
Copier après la connexion

Le module sched permet la planification de tâches avec un contrôle complexe sur leurs temps d'exécution. Dans ce scénario, do_something() fonctionne comme une fonction de rappel qui se replanifie toutes les 60 secondes et exécute simultanément la tâche prévue. Ce mécanisme garantit l'exécution continue de la fonction à l'intervalle spécifié sans entraver la réactivité du programme.

Essentiellement, l'exploitation des planificateurs d'événements fournit une solution plus robuste et plus économe en ressources pour exécuter de manière répétée des fonctions en Python sans les limitations de while boucles.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal