目前在測試Flask框架下,透過APScheduler定時執行任務,
Flask主程式跟APSceduler程式碼在同一個.py檔內,
並定時執行計數的工作,將計算值輸出到log.txt。

將scheduler.start()寫在 if name == " main " 內,
就無法正常執行定時任務,但可以正確路由到網址,
如果把scheduler.start()移出來,
則定時任務正常執行,但就變成不能正確由到網址。

不知道是不是一次只能有一個thread在運行? 不知道有沒有相關文件可參考?
若是的話,該如何解決呢?

以下是程式碼的部分:

from flask import Flask
from apscheduler.schedulers.blocking import BlockingScheduler
import logging
app = Flask(__name__)
#設定Logging 參數
logging.basicConfig(level=logging.WARNING, filename='./log.txt',
	format='[%(asctime)s %(levelname)-8s] %(message)s',
	datefmt='%Y%m%d %H:%M:%S',
#endregion
#時區設置
blockSched = BlockingScheduler(timezone="Asia/Taipei")
#region (測試用) APScheduler 用
initnum = 1
@blockSched.scheduled_job('interval', seconds=20)
def counter():
    global initnum
    total = initnum + 1 
    logging.error('計算: ' + str(total))
    print(total)
    initnum = total
#endregion
@app.route("/apstest")
def home():
    return "Hello Flask"
#blockSched.add_job(counter, 'interval', seconds=10)
#==== blockSched.start(),在這裡可以正常執行定時任務 ===========
#==== 但就變成無法正常路由到 /apstest ===========
#blockSched.start()
if __name__ == "__main__":
    #==== 可以正常路由到 /apstest ===========
    #==== 但就無法正常執行定時任務 ===========
    blockSched.start()
    app.run()