APscheduler简介
APscheduler作用为在指定的时间规则执行指定的作业。指定时间规则的方式可以是间隔多久执行,可以是指定日期时间的执行,也可以类似Linux系统中Crontab中的方式执行任务。指定的任务就是一个Python函数。
安装库
pip3 install APScheduler
根据时间间隔执行
from apscheduler.scheduler import Scheduler
sched = Scheduler() # 实例化
@sched.interval_schedule(seconds=180) # 时间间隔
def my_task1():
print('定时任务1开始\n')
print('定时任务1结束\n')
sched.start()
定时执行
@sched.cron_schedule(hour=23, minute=59) # 执行的时间
def recovery_send_mes():
# 恢复今日发送状态
print('触发')
user = User.objects.filter(today_mes_is_status='是')
if user:
with open(f'{BASE_DIR}/media/recovery.txt', 'a+', encoding='utf-8') as f:
for i in user:
i.today_mes_is_status = '否'
i.save()
f.write(time.strftime('%Y-%m-%d %H:%M:%S'))
f.write('\n')
sched.start()
apscheduler强大的地方是可以集成到tornado,django,flask等框架,也可以单独运行。比如CronTrigger还有更强大的用法,可以参照官网的cron用法。