资讯专栏INFORMATION COLUMN

关于Flask Schedule

邹强 / 921人阅读

摘要:日期触发一次性指定日期作业的运行日期或时间指定时区运行一次运行一次间隔调度间隔几周间隔几天间隔几小时间隔几分钟间隔多少秒开始日期结束日期时区每两个小时调一下触发年,位数字月范围日范围周范围周内第几天或者星期几范围或者时范围

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44112.html

相关文章

  • 使用Redis+Flask维护动态代理池

    摘要:目标爬虫中经常遇到被封杀的情况最有效的方式就是使用代理。为什么要用代理池许多网站有专门的反爬虫措施,可能遇到封等问题。通过定时的检测维护同样可以得到多个可用代理。 目标 爬虫中经常遇到被封杀IP的情况,最有效的方式就是使用代理IP。我们可以在一些平台上购买代理IP,但是价格比较昂贵。另外很多IP代理网站也提供了一些免费的代理IP,可以爬取下这些代理IP,并使用webAPI方式提供代理I...

    vibiu 评论0 收藏0
  • Java 定时任务系列(1)- Java原生支持

    摘要:第一次在指定时间点执行任务,之后每隔时间调用任务一次。定时器已启动每隔小时已经添加任务调度表这个方法在应用服务被移除,没有能力再接受请求的时候被调用。 1、普通thread实现 这是最常见的,创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果。这样可以快速简单的实现,代码如下: public class Task1 { public ...

    melody_lql 评论0 收藏0
  • 一个Flask应用运行过程剖析

    摘要:本文就主要针对一个应用的运行过程进行简要分析,后续文章还会对框架的一些具体问题进行分析。所有的请求处理过程,都会在这个上下文对象中进行。和一些全局变量注意当进入这个上下文对象时,会触发。 相信很多初学Flask的同学(包括我自己),在阅读官方文档或者Flask的学习资料时,对于它的认识是从以下的一段代码开始的: from flask import Flask app = Flask(...

    shmily 评论0 收藏0
  • Python 爬虫实战(一):使用 requests 和 BeautifulSoup

    摘要:建立连接插入数据使用方法创建一个游标对象执行语句提交事务已经存在如果发生错误则回滚关闭游标连接关闭数据库连接定时设置做了一个定时,过段时间就去爬一次。 Python 基础 我之前写的《Python 3 极简教程.pdf》,适合有点编程基础的快速入门,通过该系列文章学习,能够独立完成接口的编写,写写小东西没问题。 requests requests,Python HTTP 请求库,相当于...

    jokester 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<