关于Flask Schedule

栏目: Python · 发布时间: 4年前

内容简介:a Flask extension supported for thedate 日期触发: 一次性指定日期interval 间隔调度

Flask Schedule

Flask-APScheduler

a Flask extension supported for the APScheduler which is a Task scheduling library for Python.

how to use

from flask import Flask
from flask_apscheduler import APScheduler
class Config(object):
    JOBS = [
        {
            'id': 'job1',
            'func': '__main__:job1',
            'args': (1, 2),
            'trigger': 'interval',
            'seconds': 10
        }
    ]

def job1(a, b):
    print(str(a) + ' ' + str(b))


if __name__ == '__main__':
    app = Flask(__name__)
    app.config.from_object(Config())

    scheduler = APScheduler()
    scheduler.init_app(app)
    scheduler.start()
    
    app.run()

APScheduler Job

add job

date 日期触发: 一次性指定日期

  • run_date (datetime|str) – 作业的运行日期或时间
  • timezone (datetime.tzinfo|str) – 指定时区
# 2016-12-12运行一次job_function
scheduler.add_job(job_function, 'date', run_date=date(2016, 12, 12), args=['text'])
# 2016-12-12 12:00:00运行一次job_function
scheduler.add_job(job_function, 'date', run_date=datetime(2016, 12, 12, 12, 0, 0), args=['text'])

interval 间隔调度

  • weeks (int) – 间隔几周
  • days (int) – 间隔几天
  • hours (int) – 间隔几小时
  • minutes (int) – 间隔几分钟
  • seconds (int) – 间隔多少秒
  • start_date (datetime|str) – 开始日期
  • end_date (datetime|str) – 结束日期
  • timezone (datetime.tzinfo|str) – 时区
# 每两个小时调一下job_function
sched.add_job(job_function, 'interval', hours=2)

Cron 触发

  • year (int|str) – 年,4位数字
  • month (int|str) – 月 (范围1-12)
  • day (int|str) – 日 (范围1-31)
  • week (int|str) – 周 (范围1-53)
  • day_of_week (int|str) – 周内第几天或者星期几 (范围0-6 或者 mon,tue,wed,thu,fri,sat,sun)
  • 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) – 指定时区
# job_function将会在6,7,8,11,12月的第3个周五的1,2,3点运行
sched.add_job(job_function, 'cron', month='6-8,11-12', day='3rd fri', hour='0-3')
# 截止到2016-12-30 00:00:00,每周一到周五早上五点半运行job_function
sched.add_job(job_function, 'cron', day_of_week='mon-fri', hour=5, minute=30, end_date='2016-12-31')

使用装饰器

@scheduler.task('interval', id='do_job_1', seconds=30, misfire_grace_time=900)
def job1():
    print('Job 1 executed')


# cron examples
@scheduler.task('cron', id='do_job_2', minute='*')
def job2():
    print('Job 2 executed')
    
@scheduler.task('cron', id='do_job_3', week='*', day_of_week='sun')
def job3():
    print('Job 3 executed')

pause a job

scheduler.pause_job(id)

resume a job

scheduler.resume_job(id)

remove a job

scheduler.remove_job(id)

更多相关文章和代码 https://github.com/edgardeng/flaskAll


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

构建可扩展的Web站点

构建可扩展的Web站点

Cal Henderson / 徐宁 / 电子工业出版社 / 2008 / 58.00元

随着Web 2.0网站的蓬勃发展,如何成功地构建可扩展的Web站点成为网站开发人员必备的技能。本书是Flickr.com的主力开发人员讲解构建可扩展的Web站点的经典之作。本书主要介绍了Web应用程序的概念、体系结构、硬件需求、开发环境的原则及国际化、本地化和Unicode等基本内容,并为解决Web应用程序的数据安全、电子邮件整合、远程服务交互、应用程序优化、扩展、监测和预警、开放API等问题提供......一起来看看 《构建可扩展的Web站点》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具