from flask import Flask, Blueprint
from flask_apscheduler import APScheduler
import datetime
app = Flask(__name__)
# 创建即插视图
scheduler_blueprint = Blueprint('scheduler_blueprint', __name__)
# 配置调度器
scheduler = APScheduler()
scheduler.init_app(app)
# 在即插视图中定义调度任务
@scheduler_blueprint.route('/schedule_task')
def schedule_task():
return 'Scheduled task executed at: {}'.format(datetime.datetime.now())
# 注册即插视图
app.register_blueprint(scheduler_blueprint, url_prefix='/scheduler')
# 配置调度任务
@scheduler.task('interval', id='my_task', seconds=10)
def my_task():
print('Scheduled task executed at:', datetime.datetime.now())
if __name__ == '__main__':
# 启动调度器
scheduler.start()
app.run(debug=True)
在上述代码中,我们使用了 Flask 的 Blueprint 创建了即插视图 scheduler_blueprint,并在其中定义了一个路由 /schedule_task,该路由对应的视图函数返回当前时间。同时,我们使用了 Flask-APScheduler 扩展来创建了一个调度器,并配置了一个定时任务 my_task,该任务每隔 10 秒执行一次。
请注意,Flask-APScheduler 扩展需要额外安装:
pip install Flask-APScheduler
在实际应用中,你可以根据需求定义更复杂的定时任务,执行一些周期性的操作,例如数据清理、发送邮件等。这样的基于调度的即插视图方法使得你能够更灵活地组织和管理应用中的定时任务。
转载请注明出处:http://www.zyzy.cn/article/detail/7324/Flask