安装
pip install flask
pip install flask_apscheduler -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn
使用
方法一:使用 Config 类配置时间规则
from flask import Flask from flask_apscheduler import APScheduler class Config(object): # 列表类型,如有需要可以定义多个job JOBS = [ { 'id': 'job_1', # 一个标识 'func': '__main__:job1', # 指定运行的函数 'args': (1, 2), # 传入函数的参数 'trigger': 'interval', # 指定 定时任务的类型 'seconds': 5 # 运行的间隔时间 } ] SCHEDULER_API_ENABLED = True def job1(a, b): # 运行的定时任务的函数 print(str(a) + ' ' + str(b)) if __name__ == '__main__': app = Flask(__name__) # 实例化flask app.config.from_object(Config()) # 为实例化的 flask 引入配置 scheduler = APScheduler() # 实例化 APScheduler scheduler.init_app(app) # 把任务列表放入 flask scheduler.start() # 启动任务列表 app.debug = True app.run(host='0.0.0.0',port=8000) # 启动 flask
方法二:使用装饰器
from flask import Flask from flask_apscheduler import APScheduler # 实例化 APScheduler scheduler = APScheduler() @scheduler.task('interval', id='job_1', args=(1,2),seconds=5) def job1(a, b): # 运行的定时任务的函数 print(str(a) + ' ' + str(b)) if __name__ == '__main__': app = Flask(__name__) # 实例化flask scheduler.start() # 启动任务列表 app.debug=True app.run(host='0.0.0.0',port= 8000) # 启动 flask
方法三:通过调用 flask_apscheduler 的 api (推荐)
from flask import Flask from apscheduler.schedulers.background import BackgroundScheduler # 调度器在后台线程中运行,不会阻塞当前线程 scheduler = BackgroundScheduler() def job1(a, b): # 运行的定时任务的函数 print(str(a) + ' ' + str(b)) scheduler.add_job(func=job1, args=("1","2"),id="job_1", trigger="interval", seconds=5, replace_existing=False) ''' func:定时任务执行的函数名称。 args:任务执行函数的位置参数,若无参数可不填 id:任务id,唯一标识,修改,删除均以任务id作为标识 trigger:触发器类型,参数可选:date、interval、cron replace_existing:将任务持久化至数据库中时,此参数必须添加,值为True。并且id值必须有。不然当程序重新启动时,任务会被重复添加。 ''' if __name__ == '__main__': app = Flask(__name__) # 实例化flask scheduler.start() # 启动任务列表 app.debug=True app.run(host='0.0.0.0',port= 8000) # 启动 flask
实例对象 scheduler 拥有增、删、改、查等基本用法
新增任务:add_job() 编辑任务:modify_job() 删除任务:remove_job(id)(删除所有任务:remove_all_jobs()) 查询任务:get_job(id)(查询所有任务:get_jobs()) 暂停任务:pause_job(id) 恢复任务:resume_job(id) 运行任务:run_job(id)(立即运行,无视任务设置的时间规则)
转:flask_apscheduler 定时任务框架 - 三只松鼠 - 博客园 (cnblogs.com)
标签:__,定时器,python,app,任务,flask,job,id From: https://www.cnblogs.com/boye169/p/18372212