flask调度任务
2018-11-20 03:25:49来源:博客园 阅读 ()
最近遇到需要,需要定时清理数据库的过期数据,记录下处理过程
一、方案
- 使用time.sleep()
- 使用threading.Timer()
- APScheduler模块
方案1太消耗资源,而且Low
方案2适合只做一次的任务,循环执行比较复杂,容错率低
方案3会从系统底层帮助我们选用合适的工具,但不能利用flask的主线程
总结:
就是它了
二、代码示例
#! /usr/bin/env python from flask import Flask from flask_apscheduler import APScheduler import time class Config: JOBS = [ { 'id': '111', # 不重复的标识 'func': '__main__:job_1', # 定时执行的 模块:函数 'trigger': 'cron', # 定时执行,其他可选参数data,interval 'hour': 16, # 每天16:26分执行 'minute': 26 } ] def job_1(): # 一个函数,用来做定时任务的任务。 print(time.time()) app = Flask(__name__) app.config.from_object(Config) @app.route("/") def test(): return "hi" if __name__ == '__main__': scheduler = APScheduler() scheduler.init_app(app) scheduler.start() app.run(debug=False)
三、注意事项
- 需要scheduler.init_app(app),别忘记了
- 调度器默认使用BackgroundScheduler,是阻塞型的,如果使用异步编程请不要使用
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Flask request接口获取参数 2019-08-13
- celery 分布式异步任务框架(celery简单使用、celery多任务结 2019-07-24
- django celery 异步执行任务遇到的坑 2019-07-24
- Flask的上下文管理 2019-07-24
- Flask学习之旅--数据库 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash