当前位置: 首页 > 知识库问答 >
问题:

Flask SocketIO auto reload不工作(代码更改/开发)

郗福
2023-03-14

自动重新加载程序(在代码更改时)使用应用程序运行良好。运行/烧瓶运行--主机=0.0.0.0--端口8080。

然而,当我将flask_socketio加入混合物时,它就停止了工作。

例如。带入:

from flask_socketio import SocketIO, send, emit
socketio = SocketIO(app, path='/kpi/socket.io')
socketio.run(app, host='0.0.0.0', port=8080, debug=True, use_reloader=True, use_debugger=True)

要求。txt文件

Flask==1.0.2
Flask-Bootstrap==3.3.7.1
Gunicorn==19.8.1
inotify==0.2.9
pymysql==0.7.2
flask-socketio==3.0.1
eventlet==0.23.0
socketIO-client==0.7.2

我确实在日志中得到了“*用stat重新启动”,这与我通常运行flask时的情况相同。

无关信息:这是在docker容器中运行的,其中我有一个用于dev的compose文件,其中我运行dev模式,并且有一个用于FLASK\u DEBUG=1的env变量。使用nginx将其余部分代理到端口80,然后将其发送到另一个本地端口。在我加入socketio之前,这一切都很好。

共有1个答案

鲍健柏
2023-03-14

最终这样做:

在dev中运行它(这将引入wsgi的werkzeug调试器)

# TODO run this only in dev
from werkzeug.debug import DebuggedApplication
app.debug = True
app.wsgi_app = DebuggedApplication(app.wsgi_app, evalex=True)

然后使用supervisord并运行uwsgi,而不是包括标志

--py-autoreload 1

它们都返回了我在开发中想要的功能。只需要让它们现在只在开发模式下运行,我很好。

 类似资料:
  • 原因: Workerman是常驻内存运行的,常驻内存可以避免重复读取磁盘、重复解释编译PHP,以便达到最高性能。所以更改业务代码后需要手动reload或者restart才能生效。 同时workerman提供一个监控文件更新的服务,该服务检测到有文件更新后会自动运行reload,从新载入PHP文件。开发者将其放入到项目中随着项目启动即可。 注意:windows系统不支持reload,无法使用监控服务

  • 我正在编写一个简单的python程序来连接和显示来自Postgres表的结果,这是在AWS RDS上。我在公共架构中有表mytest。 但这会引发一个错误

  • 我已经更改了我的应用程序的包名,但是调试不工作,在flutter运行命令后可以运行项目,但是不能调试。

  • 据我所知,我在客户机上设置的RMI代码库将传递给服务器。然后,服务器使用此代码库定位不在服务器类路径中的类。 只要所有必需的类在服务器类路径中可用,远程方法调用就可以正常工作。然后,我尝试从服务器类路径中删除一个必需的类,并在启动RMI客户端时在代码库属性中为必需的类指定新位置。不幸的是,这将给我一个ClassNotFoundExc0019:java.lang.ClassNotFoundExc00

  • 问题内容: 我目前遇到“热代码替换”问题,无法在Eclipse Galileo和JBoss 4.2.3上运行。 在其他应用程序中,我正在本地JBoss上运行爆炸的Java WAR。由其构建的项目由Maven管理。我使用Maven目标war:exploded构建项目,然后使用ANT脚本将该目录复制到JBoss。 当我现在运行应用程序并在代码中的任何位置设置断点时,Eclipse会在调试模式下正确停止

  • 我想使“onedit”仅在值已更改的工作表上工作。 [sheet1]如果在第7列中输入值,则需要在[sheet1]第6列中写入时间 或[sheet2]如果在第7列中输入值,则希望在[sheet2]第6列中写入时间。 不要在[sheet5]上工作。 但是时间也出现在我不想要的[表2]和[表3]中。 请帮帮我。