Maison  >  Article  >  développement back-end  >  Comment utiliser la minuterie Python

Comment utiliser la minuterie Python

王林
王林avant
2023-05-12 16:43:101397parcourir

Ici, nous développons une fonction print_datetime pour imprimer l'heure actuelle, et utilisons également la fonction print_time comme tâche que nous devons continuer à exécuter.

# Importing the datetime module.
import datetime


def print_time(message=None):
    """
    It prints the current time, optionally preceded by a message.

    :param message: The message to print
    """
    print(message, datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

Ensuite, nous préparons le module de tâches planifiées apscheduler que nous devons utiliser. Vous pouvez choisir de l'installer en utilisant pip.

pip install apscheduler

# Importing the BlockingScheduler class from the apscheduler.schedulers.blocking module.
from apscheduler.schedulers.blocking import BlockingScheduler

À ce stade, nous pouvons exécuter la fonction métier qui doit être maintenue dans l'état d'exécution, c'est-à-dire la fonction print_datetime ici en tant que tâche planifiée.

De cette façon, nous n'avons pas besoin d'utiliser la méthode while True infinite loop + sleep pour maintenir la tâche en cours d'exécution.

# Creating a scheduler object.
scheduler = BlockingScheduler()

# Adding a job to the scheduler.
scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='cron', second='*/1')  # 每秒执行

# Starting the scheduler in a separate thread.
scheduler.start()

Enfin, démarrez simplement le fichier .py actuel pour exécuter directement la tâche planifiée. L'effet d'exécution est le suivant.

Tâche planifiée d'impression de l'heure 2023-02-26 13:52:52
Tâche planifiée d'impression de l'heure 2023-02-26 13:52:53
Impression de l'heure Tâche planifiée 2023-02-26 13:52:54
Tâche planifiée d'impression de l'heure 2023-02-26 13:52:55
Tâche planifiée d'impression de l'heure 2023-02-26 13:52:56#🎜 🎜#TimePrint Scheduled Task 2023-02-26 13:52:57

Bien sûr, en tant que framework apscheduler pour les tâches planifiées, il possède également de nombreuses compétences. Par exemple : exécution en cycles plus complexes, exécution dans un temps limité, exécution en un seul point, etc.

Ce qui suit est la méthode d'exécution la plus courante de la tâche planifiée d'apscheduler que j'ai répertoriée pour votre référence et vos précieux avis.

scheduler.add_job(func=print_time, args=('任务只执行一次,在下一次的时间执行',),
                  next_run_time=datetime.datetime.now() + datetime.timedelta(seconds=60))

scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='interval', seconds=5)  # 每5秒执行一次
scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='interval', minutes=2)  # 每2分钟执行一次
scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='interval', hours=1)  # 每1小时执行一次

scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='cron', minute='*', second='1')  # 每分钟执行一次
scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='cron', hour='*', minute='0',
                  second='0')  # 每小时执行一次

scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='cron', hour='20', minute='0',
                  second='0')  # 每天20:00执行一次
scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='cron', hour='21')  # 每天21:00执行一次

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer