2
我有一个简单的瓶的应用程序,这样说:无法配置Gunicorn服务烧瓶中的应用程序运行的另一个回路同时
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
我也有松弛的机器人阅读邮件
#bot.py
def serve(self):
while True:
message, channel = self.parse_slack_output(self.slack_client.rtm_read())
if message and channel:
self.handle_message(message, channel)
time.sleep(self.READ_WEBSOCKET_DELAY)
我希望两个代码同时运行。因此,在app.py
我做的:
#app.py
if __name__ == "__main__":
import threading
import bot
flask_process = threading.Thread(target=app.run)
bot_process = threading.Thread(target=bot.serve)
bot_thread.start()
flask_thread.start()
此代码与$ python app.py
预期,但是当我在gunicorn
带来机器人线程似乎并没有工作。
我曾尝试:
gunicorn app:app
gunicorn --workers=2 app:app
gunicorn --threads=2 app:app
我也试过multiprocessing
库,并得到了相同的结果。
任何想法如何解决这个问题?谢谢。
编辑:我现在明白这个问题有多糟糕。我不应该在if __name__ = "__main__":
块中编写代码。这不是由gunicorn
运行的。它直接拿起应用程序并运行它。还必须弄清楚如何使它处理机器人线程。