亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 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 #[email protected]('/')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 關注
  • 422 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號