我有一个flask应用程序,该应用程序通过redis(使用gunicorn)提供服务器事件事件,在本地计算机上运行良好。但是,当我将其部署到AWS EC2实例上时,前端不会收到任何事件。当使用以下命令查看时,Redis会接收数据:
redis-cli monitor
为此必须设置任何配置吗?
我在应用程序中使用flask_sse
,gevent
和guniorn
。
我的代码是:
from flask import Flask, render_template
import atexit
from apscheduler.scheduler import Scheduler
from flask_sse import sse
import time,json
app = Flask(__name__)
cron = Scheduler(daemon=True)
cron.start()
@cron.interval_schedule(seconds=0.1)
def publish_hello():
with app.app_context():
sse.publish({"timestamp":time.time()}, type='nodelink')
sse.publish({})
atexit.register(lambda: cron.shutdown(wait=False))
app.config["REDIS_URL"] = "redis://localhost"
app.register_blueprint(sse, url_prefix='/stream')
@app.route('/')
def index():
return render_template("index.html")
#run redis with
#redis-server /usr/local/etc/redis.conf
#run server with
#gunicorn main:app --worker-class gevent --bind 127.0.0.1:8000