定时循环调取函数--APScheduler

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 消息完成发送程序错误,或者程序完成

原文地址:https://www.cnblogs.com/sdosun/p/13263018.html