【发布时间】:2019-11-13 07:39:48
【问题描述】:
如何在单独的线程中运行我的烧瓶应用程序? 我可以在 main 中运行我的烧瓶应用程序,但是
我需要从一个线程启动烧瓶应用程序,该线程应该在主线程中运行,我启动一个事件以启动线程引擎。
所以这很好用
@app.route("/voice", methods=['GET', 'POST'])
def voice():
.........
return str(resp)
@app.route("/mainFlow", methods=['GET', 'POST'])
def mainFlow():
"""Respond """
.......
return str(resp)
if __name__ == "__main__":
app.run(debug=True)
但我需要这样的东西
def myIVR():
print("-----------------Thrd1-myIVR --------------------")
app = Flask(__name__)
app.run(debug=True)
@app.route("/voice", methods=['GET', 'POST'])
def voice():
........
return str(resp)
@app.route("/mainFlow", methods=['GET', 'POST'])
def mainFlow():
"""Respond to """
resp = VoiceResponse()
def myTest():
print("E2Etest")
thrd1 = threading.Thread(target=myIVR, args=[])
thrd1.start()
print("trigger event")
#xyz()
################################################################
def main():
myTest()
if __name__ == '__main__':
main()
我收到此错误
File "C:\......\AppData\Local\Programs\Python\Python37-32\lib\signal.py", line 47, in signal
handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
ValueError: signal only works in main thread
【问题讨论】:
-
谢谢,好像有人问过debug,我想知道线程。我也知道我可以在主线程中运行 Flask,而且我没有使用调试。我需要在线程模式下运行。
-
这个链接是否回答了你的问题?
-
我有一个可以借鉴的工作示例。 github.com/davewsmith/lapse/blob/master/lapse.py#L31 是我启动线程以运行 Flask 的地方。特别注意
use_reloader=False部分,它避免了太多的悲伤。 -
它有效,戴夫,非常感谢!!!!
标签: python multithreading flask