Maison > développement back-end > Tutoriel Python > Comment puis-je créer une planification de type Cron en Python ?

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

DDD
Libérer: 2024-12-13 22:29:12
original
714 Les gens l'ont consulté

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ée, la bibliothèque agenda 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)
Copier après la connexion

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 : Un plus bibliothèque de planification 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 tâche distribuée Celery file d'attente.

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

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal