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.
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.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
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!