为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Flask 中执行并行/后台任务

如何在 Flask 中执行并行/后台任务

慕容3067478 2023-02-22 15:42:09
你能帮我完成并行任务吗?我这样做了几天,我还有更多想法。我想main()在后台连续运行任务以检查温度和控制输出。当我启动 web 服务器时,函数main()只执行一个循环,并且 flaskapp()运行正常。非常感谢。from flask import Flask, render_templateimport datetimeimport timefrom random import randomfrom random import seedimport threadingfrom pytz import utcimport atexitapp = Flask(__name__)myThread = threading.Thread()POOL_TIME = 5 #seconds@app.route('/')def index():        return render_template('index.html', **templateData)@app.route("/<deviceName>/<action>")def action(deviceName, action):        return render_template('index.html', **templateData)def main():        print('Init main task on background')        time.sleep(1)        if __name__ == '__main__':        #myThread = threading.Timer(POOL_TIME, main, ())        #myThread.start()        threading.Thread(target = main()).start()        app.run(debug=True, host='0.0.0.0')        #app.run(threaded=True)
查看完整描述

2 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

您的主要功能不会循环,因此只会执行一次。您需要添加一个循环,例如:


def main():

    while 1 :

        print('Init main task on background')

        time.sleep(1)


查看完整回答
反对 回复 2023-02-22
?
繁花如伊

TA贡献2012条经验 获得超12个赞

线程中带有“主”代码的选项(我没有包含您需要的所有导入 - 您的代码显然需要包含您已经拥有的代码):


import threading


class MonitorThread(threading.Thread):


     def run(self):

          debug_log("Monitor system thread")


          try:

               while 1: # Monitor the system forever while powered

                   print('Init main task on background')

                   # ... Add here whatever you want to do forever

                   time.sleep(1)

          except KeyboardInterrupt:

               GPIO.cleanup()


MonitorThread().start()


app = Flask(__name__) # Start webpage


# Flask web page code


@app.route("/")

def index():

# ... Include all of your Flask web page code generation


if __name__ == "__main__":

     app.run(debug=False, host="0.0.0.0")

如果这不起作用,请告诉我,因为我的应用程序非常复杂,但会永远运行并按要求提供网页,所以这只是因为我遗漏了一些东西。


查看完整回答
反对 回复 2023-02-22
  • 2 回答
  • 0 关注
  • 339 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信