APScheduler
因为想要循环调取某一函数,并且可以更加精细化的控制,任务查询需要跨平台运行,最好使用这种定时任务框架。
apscheduler 提供了基于日期,固定时间间隔以及 crontab 类型的任务,我们可以在主程序的运行过程中快速增加新作业或删除旧作业。
安装
pip install apscheduler
1、首先试一下简单调用:
其中源码解释说第二个参数 trigger = ' ' ,有三个可选:
date表示具体的一次性任务,interval表示循环任务,cron表示定时任务
def aps_test(x): print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), x ) scheduler = BlockingScheduler() scheduler.add_job(func=aps_test, args=('定时任务',),trigger='cron', second='*/5') scheduler.add_job(func=aps_test, args=('一次性任务',), next_run_time=datetime.datetime.now() + datetime.timedelta(seconds=7)) scheduler.add_job(func=aps_test, args=('循环任务',), trigger='interval', seconds=3) scheduler.start()
2、调用的任务出错了,那么此定时还会存在么??
记得用logging查看一下日志
import logging # 如果程序出错那么用log查看器日志 logging.basicConfig(level=logging.INFO, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%Y-%m-%d %H:%M:%S', filename='log1.txt', filemode='a') scheduler._logger = logging
3、既然我们可以通过调用函数做到及时或定时触发,我们可以通过 send 消息完成发送程序错误,或者程序完成