"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je créer une planification de type Cron en Python ?

Comment puis-je créer une planification de type Cron en Python ?

Publié le 2024-12-22
Parcourir:441

How Can I Create Cron-Like Scheduling in Python?

Planification de type Cron avec Python

Le besoin de planifier des tâches basées sur des expressions flexibles se pose dans divers contextes. Bien que cron remplisse cet objectif dans de nombreux environnements, il n’est peut-être pas universellement disponible ou réalisable. Dans de tels cas, Python propose plusieurs options pour créer vos propres planificateurs de type Cron.

Approche légère avec la bibliothèque de planification

Si des solutions légères et pures basées sur Python sont souhaité, la bibliothèque schedule propose une interface simple et expressive. Il permet de planifier des tâches à l'aide d'expressions de type cron :

import schedule
import time

def job():
    print("I'm working...")

schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)

while 1:
    schedule.run_pending()
    time.sleep(1)

Dans cet exemple, la fonction job() s'exécutera à intervalles réguliers. Vous pouvez modifier l'expression pour définir des horaires complexes, par exemple toutes les 2 heures entre 9h et 17h en semaine.

Approches alternatives

Si la bibliothèque d'horaires ne le fait pas répondre à vos besoins spécifiques, envisagez ces approches alternatives :

  • apscheduler : Une bibliothèque de planification plus complète avec prise en charge de plusieurs backends, y compris les threads locaux et Celery.
  • crontab : Un package Python qui émule la commande crontab, permettant la planification directe des commandes shell.
  • celery-beat : Un planificateur qui s'intègre à la file d'attente de tâches distribuée Celery.

N'oubliez pas, lorsque vous définissez votre propre planificateur, vous devrez gérer le lancement des fonctions Python dans un thread séparé pour éviter de bloquer le processus principal.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3