flask应用程序启动后,如何让数据库更新功能继续运行后端

问题描述 投票:0回答:1

我使用调度程序在app.run()之前调用一个函数-“DataBaseUpdate”,里面有一个“While True”循环。 我的设计就像我有一个在 app.py 中不断更新数据库的功能,然后应用程序显示数据库中的内容。

但似乎在 Flask 应用程序启动后,我的应用程序不再在后端运行。就像它运行一次然后完成一样。如何让我的程序继续运行后端并更新数据库?

if __name__ == "__main__":
    with app.app_context():
        db.create_all() # <--- create db object.
    start = datetime.date.today()+ datetime.timedelta(days=1)  #set start and end time
    end= start + datetime.timedelta(days=10)

    scheduler = BackgroundScheduler()
    scheduler.add_job(DataBaseUpdate, 'interval', seconds=30)
    scheduler.start()

    port = int(os.environ.get('PORT', 5000))
    app.run(debug=True, host='0.0.0.0', port=port)
python flask web flask-sqlalchemy
1个回答
0
投票

最终我发现下面的代码有效。但是,我不知道为什么直到第一个计时器 <=> 1 小时到达才得到结果。

scheduler = BackgroundScheduler()
scheduler.add_job(func=NA1, trigger="interval", hours=1)
scheduler.start()



if __name__ == "__main__":
    with app.app_context():
        db.create_all() # <--- create db object.
    #thread1 = threading.Thread(target=NA1,name='NAThread')
    #thread1.start()
    #scheduler.start()
    port = int(os.environ.get('PORT', 5000))
    app.run(debug=True, host='0.0.0.0', port=port)
© www.soinside.com 2019 - 2024. All rights reserved.