美文网首页
有关flask-apscheduler文档

有关flask-apscheduler文档

作者: 葡萄柚子茶 | 来源:发表于2020-03-24 14:24 被阅读0次

    apscheduler 官方文档
    flask-apscheduler 案例
    基于Flask-APScheduler实现添加动态定时任务

    项目中运用
    首先先在config.py文件中配置

    class APSchedulerJob(object):
         JOBS = [
             {
                # id不可重复
                 'id': 'job1',
                #func表示任务执行的函数的路径在utils.py文件下的csv_file函数
                 'func': 'utils:csv_file',
                #触发条件
                 'trigger': {
                     'type': 'cron',
                     'hour': '14',
                     'minute': '29',
                     'second': 1
                 }
    
             },
             {
                 'id': 'job2',
                 'func': 'utils:generate_csv_data',
                 'trigger': 'interval',
                 'minutes': 1
            }
    
    
         ]
         SCHEDULER_API_ENABLED = True
    
    

    然后在app.py文件中配置

    app.config.from_object(APSchedulerJob)
    
    scheduler = APScheduler()
    scheduler.init_app(app)
    scheduler.start()
    
    

    就可以实现定时任务了

    注:如果开始debug模式,会有两个进程,会实例化两个scheduler,job任务会执行两次,在启动定时任务时,关闭debug模式即可

    triggers: 支持三种任务触发方式

    1.date:固定日期触发器,任务只运行一次,运行完毕自动清除;若错过指定运行时间,任务不会被创建

    参数 说明
    run_date (datetime 或 str) 作业的运行日期或时间
    timezone (datetime.tzinfo 或 str) 指定时区
    例如# 在 2019-4-24 00:00:01 时刻运行一次 start_system 方法
    scheduler .add_job(start_system, 'date', run_date='2019-4-24 00:00:01', args=['text'])
    

    2.interval:时间间隔触发器,每个一定时间间隔执行一次。

    参数 说明
    weeks (int) 间隔几周
    days (int) 间隔几天
    hours (int) 间隔几小时
    minutes (int) 间隔几分钟
    seconds (int) 间隔多少秒
    start_date (datetime或str) 表示开始时间
    end_date (datetime或str) 表示结束时间

    例:在 2019-4-24 00:00:00 - 2019-4-24 08:00:00 之间, 每隔两小时执行一次 alarm_job 方法

    scheduler .add_job(alarm_job, 'interval', hours=2, start_date='2019-4-24 00:00:00' , end_date='2019-4-24 08:00:00')
    

    3.cron:cron风格的任务触发

    参数 说明
    year (int 或 str) 表示四位数的年份 (2019)
    month(int或str) 月 (范围1-12)
    day(int或str) 日 (范围1-31)
    week(int或str) 周 (范围1-53)
    day_of_week (int或str) 表示一周中的第几天,既可以用0-6表示也可以用其英语缩写表示
    hour (int或str) 表示取值范围为0-23时
    minute (int或str) 表示取值范围为0-59分
    second (int或str) 表示取值范围为0-59秒
    start_date (datetime或str) 表示开始时间
    end_date (datetime或str) 表示结束时间
    timezone (datetime.tzinfo或str) 表示时区取值

    (int|str) 表示参数既可以是int类型,也可以是str类型
    (datetime | str) 表示参数既可以是datetime类型,也可以是str类型

    例如:表示每5秒执行该程序一次,相当于interval 间隔调度中seconds = 5

    sched.add_job(my_job, 'cron',second = '*/5')
    

    相关文章

      网友评论

          本文标题:有关flask-apscheduler文档

          本文链接:https://www.haomeiwen.com/subject/xbfoyhtx.html