pip install apscheduler
APScheduler
основные компоненты,Отвечает за управление и выполнение задач。APScheduler
Различные типы Планировщик,включая блокировку Планировщик(BlockingScheduler
)и неблокирующий Планировщик(BackgroundScheduler
)。APScheduler
Поддержка различныхкуроктип,например, фиксированный интервал временикурок(IntervalTrigger
)、датакурок(DateTrigger
)ждать。APScheduler
середина,Вы можете создавать задачи и связывать их с курок.,указать, когда выполнять задачу.以下да一个использоватьAPScheduler
Пример,Демонстрация создания простых запланированных задач.,Выводить текущее время каждые 5 секунд:
# -*- coding: utf-8 -*-
# @Author: Mehaei
# @Date: 2023-10-09 20:26:13
# @Last Modified by: Mehaei
# @Last Modified time: 2023-10-09 22:27:28
import datetime
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.triggers.interval import IntervalTrigger
# Определить функцию задачи
def my_task():
current_time = datetime.datetime.now()
print(f"Время выполнения задачи: {current_time}")
# Создать блокирующий Планировщик
scheduler = BlockingScheduler()
# Создать курок, срабатывающий каждые 5 секунд
trigger = IntervalTrigger(seconds=5)
# Добавляйте задачи и курок в Планировщик
scheduler.add_job(my_task,trigger)
try:
# запускать Планировщик scheduler.start()
except (KeyboardInterrupt, SystemExit):
# Остановиться, когда пользователь нажмет Ctrl+C или программа выйдет из Планировщика.
scheduler.shutdown()
В реальных приложениях можно настроить различные типы курок и задач по мере необходимости для выполнения различных запланированных задач. задачи。APScheduler
Он также поддерживает сохранение задач в базе данных.,Это позволяет сохранять информацию о задаче при перезапуске приложения.
Это всего лишь простой пример,APScheduler
Предоставляет более продвинутые функции,нравитьсязапланированные Постоянство задачи、Параметры задачи、Обработка исключений задач и т. д. Ниже приводится краткое описание типов и использования слов курок и Планировщик.
1. IntervalTrigger (фиксированный интервал времени курок)
IntervalTrigger
Выполнять задачи через фиксированные промежутки времени。
from apscheduler.triggers.interval import IntervalTrigger
trigger = IntervalTrigger(seconds=10) # Срабатывает каждые 10 секунд
2. CronTrigger (выражение Cron курок)
CronTrigger
использоватьCronВыражение для определения времени выполнения задачи。Cron表达式да一种时间表达式,Время выполнения задачи можно определить очень точно.
Вы можете прочитать эту статью о crontab
Использование Crontab: полное руководство по автоматизации планирования задач в Linux
from apscheduler.triggers.cron import CronTrigger
trigger = CronTrigger(second='0,30') # Запускается в 0 секунд и 30 секундах каждую минуту
3. DateTrigger(指定датакурок)
DateTrigger
существовать特定дата和时间执行任务。
from apscheduler.triggers.date import DateTrigger
from datetime import datetime
trigger = DateTrigger(datetime(2023, 9, 1, 10, 30)) # Выполнить задание в 10:30 1 сентября 2023 года.
4. DailyTrigger(каждый денькурок)
DailyTrigger
каждый день的特定时间执行任务。
from apscheduler.triggers.daily import DailyTrigger
trigger = DailyTrigger(hour=12, minute=0) # Выполняйте задания каждый день в 12:00.
5. WeeklyTrigger(еженедельнокурок)
WeeklyTrigger
еженедельно的特定дата和时间执行任务。
from apscheduler.triggers.weekly import WeeklyTrigger
trigger = WeeklyTrigger(day_of_week='mon', hour=8, minute=30) # Выполняйте задания каждый понедельник утром в 8:30.
6. MonthlyTrigger(помесячнокурок)
MonthlyTrigger
помесячно的特定дата和时间执行任务。
from apscheduler.triggers.monthly import MonthlyTrigger
trigger = MonthlyTrigger(day=15, hour=14, minute=45) # Выполняйте задание в 14:45 15 числа каждого месяца.
Эти курочки предлагают широкий диапазон гибкости.,Может удовлетворить все виды потребностей запланированных задач. Подходящий тип курок можно выбрать исходя из конкретных правил выполнения задачи.,и связывать курок с задачами,определить, когда задача будет выполнена.
блокировать Планировщикда一种同步Планировщик,Блокирует выполнение основной программы,Пока выполнение всех запланированных задач не будет завершено. Это означает, что при выполнении задачи,Другие задачи не могут выполняться одновременно. Обычно это используется в простых скриптах и небольших приложениях.,Выполнение заданий не занимает много времени.
Пример использования:
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler()
# Добавить задачу
scheduler.add_job(job_function, trigger='interval', seconds=10)
# запускать Планировщикscheduler.start()
非блокировать Планировщикда一种异步Планировщик,Он не блокирует выполнение основной программы. Он использует несколько потоков или процессов для параллельного выполнения запланированных задач.,Таким образом, можно одновременно решать несколько задач. Это полезно в ситуациях, когда вам необходимо выполнять трудоемкие задачи или использовать APScheduler в больших приложениях.,Потому что он не блокирует другие части приложения.
Пример использования:
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler()
# Добавить задачу
scheduler.add_job(job_function, trigger='interval', seconds=10)
# запускать Планировщикscheduler.start()
scheduler.start()
来запускать,И неблокирующий Планировщик тоже использует тот же метод.Какой из них выбрать, зависит от потребностей вашего приложения. Если вашему приложению необходимо выполнять несколько задач одновременно,Или есть трудоемкие задачи, которые необходимо обработать,非блокировать Планировщикда更好的选择。нравиться果你只需简单地执行запланированные задача, и нет необходимости рассматривать Параллельное Выполнение блокировки Планировщиком может быть проще пользоваться. Всё закончилось~~~