安装

1
pip install flask<br>pip install flask_apscheduler -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn

  

使用

方法一:使用 Config 类配置时间规则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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

方法二:使用装饰器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 (推荐)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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 拥有增、删、改、查等基本用法

1
2
3
4
5
6
7
8
9
10
11
12
13
新增任务: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)

  

 

  

 
 posted on   boye169  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2023-08-21 python IO多路复用
点击右上角即可分享
微信分享提示