定时执行执行任务-APScheduler的全称是Advanced Python Scheduler。
from datetime import datetime
from datetime import date
import time
from apscheduler.schedulers.background import BackgroundScheduler
def job_func(text):
print(text)
def timedTask():
print(datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S.%f")[:-3])
def cron_job_func(text):
print("当前时间:", datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S.%f")[:-3]+text)
if __name__ == '__main__':
#APScheduler的全称是Advanced Python Scheduler。
#它是一个轻量级的 Python 定时任务调度框架。
#APScheduler 支持三种调度任务:固定时间间隔,固定时间点(日期),Linux 下的 Crontab 命令。
#同时,它还支持异步执行、后台执行调度任务。
# 创建后台执行的
scheduler = BackgroundScheduler()
#第2个参数为触发器的类型,有三种内置的触发器类型:
#1、date 一次性指定日期,与run_date (datetime|str)配合
#2、interval 在某个时间范围内间隔多长时间执行一次
#3、cron 和Linux crontab格式兼容,最为强大
# 添加调度任务,调度方法为 timedTask,触发器选择 interval(间隔性),间隔时长为 2 秒
scheduler.add_job(timedTask, 'interval', seconds=2)
# 在 时间A ~ 时间B 之间, 每隔两分钟执行一次 job_func 方法
scheduler.add_job(job_func,'interval', minutes=2, start_date='2021-3-23 14:00:01', end_date='2021-3-31 14:00:10')
# 在 2021-3-23 14:00:01 时刻运行一次job_func 方法
scheduler.add_job(job_func, 'date', run_date='2021-3-23 16:29:01', args=['设置的参数1'])
# 在每年 1-3、7-9 月份中的每个星期一、二中的 00:00, 01:00, 02:00 和 03:00 执行 job_func 任务
#scheduler.add_job(cron_job_func,day_of_week='0, tue', hour='0-3')
scheduler.add_job(cron_job_func,'cron',month='1-3', day_of_week='mon-fri', hour=5, minute=30, end_date='2016-12-31',args=['设置的参数1'])
scheduler.start()
#停止调度
#scheduler.shutdown()
#这里需要加一个死循环,否则函数执行完毕就退出了
while True: time.sleep(0.01)