zoukankan      html  css  js  c++  java
  • 定时循环调取函数--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 消息完成发送程序错误,或者程序完成

  • 相关阅读:
    如何查看 SQL Server 执行的历史 SQL 语句记录?
    C# 父子窗体 传值
    java使用HttpURLConnection和HttpClient分别模拟get和post请求以及操作cookies
    selenium使用等待的几种方式
    初识selenium-grid
    selenium如何分别启动IE、firefox、chrome浏览器
    java在url传输前更改字符编码
    java获取Json和http状态码
    testng环境设置
    使用reportNG替换testNG的默认报告
  • 原文地址:https://www.cnblogs.com/sdosun/p/13263018.html
Copyright © 2011-2022 走看看