V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  hanssx  ›  全部回复第 56 页 / 共 57 页
回复总数  1127
1 ... 48  49  50  51  52  53  54  55  56  57  
2019-03-13 22:28:03 +08:00
回复了 hanssx 创建的主题 Python 使用 pycharm 对 Python 项目调试遇到非常诡异的现象
pycon 群里刘师傅说了一个问题,“你用的是虚拟环境下的 python,为啥报错目录是 /usr/local/python3 呢”
我也感觉好奇怪,按道理来说,报错应该是在虚拟环境下的吧?!
2018-11-30 14:47:14 +08:00
回复了 hanssx 创建的主题 Python logging format 如何优雅地对齐
@lolizeppelin 为何不要用制表符呢?能详细说下吗
2018-11-05 16:52:13 +08:00
回复了 hanssx 创建的主题 Python logging format 如何优雅地对齐
@chinawrj 感谢感谢,是我要的答案,嘿嘿。
@kslr 兄弟没听明白你的意思,我只在一台机器运行一个 worker,在 20 台机器运行 20 个 worker。。
@daya 首先清除 gunicorn 多余进程,使用 netstat -antlp | grep port 或者 ps -ef | grep guni,然后 sudo kill -9 pid
然后再把 gevent-websocket 换成 gevetn,因为前者不支持 py3
最后把 flask-socketio 的 async_mode 换成 eventlet 而不是 gevent,gevent 会一直发送类似心跳包的东西,不知道有没有选项可以清除。
已解决,感谢各位的帮助,特别是 itertools。
@itertools 确实,老哥,能加您个 QQ 吗?想感谢您一下,gevent+flask-socketio 就会一直发请求并且 pending,eventlet 则不会,怎么会这样我也不明白,我的扣扣 9614 六 2392,期待老哥,哈哈。
@itertools 我晕,我本地不加 gunicorn,socketio.run(app=app, host='0.0.0.0', port=5000, debug=True),指定 async_mode='gevent',也会一直 pending,一直请求。。。
@itertools 我 flask 应用程序的启动代码:socketio.run(app=app, host='0.0.0.0', port=5000, debug=True)
其中 socketio 初始化时,指定了 async_mode='gevent',是这个原因吗?然后 gunicorn 也使用了 gevent。
@itertools 是的,不支持 py3,真是我的锅,第一次部署花了很多时间,使用了 gevent 之后没有 402 错误了,但是会一直 pending,gunicorn 日志显示好像是心跳包,正在找办法关了它。。。
[2018-10-11 16:40:27 +0800] [12128] [INFO] Shutting down: Master
[2018-10-11 16:41:47 +0800] [13014] [INFO] Starting gunicorn 19.9.0
[2018-10-11 16:41:47 +0800] [13014] [INFO] Listening at: http://127.0.0.1:5000 (13014)
[2018-10-11 16:41:47 +0800] [13014] [INFO] Using worker: gevent
[2018-10-11 16:41:47 +0800] [13017] [INFO] Booting worker with pid: 13017
Server initialized for gevent.
94207eaf37114c118b05480ba12679ef: Sending packet OPEN data {'sid': '94207eaf37114c118b05480ba12679ef', 'upgrades': [], 'pingTimeout': 60000, 'pingInterval': 25000}
94207eaf37114c118b05480ba12679ef: Sending packet MESSAGE data 0
94207eaf37114c118b05480ba12679ef: Received packet MESSAGE data 0/process_upload_csv
94207eaf37114c118b05480ba12679ef: Sending packet MESSAGE data 0/process_upload_csv
94207eaf37114c118b05480ba12679ef: Received packet PING data None
94207eaf37114c118b05480ba12679ef: Sending packet PONG data None
94207eaf37114c118b05480ba12679ef: Received packet PING data None
94207eaf37114c118b05480ba12679ef: Sending packet PONG data None
94207eaf37114c118b05480ba12679ef: Received packet PING data None
清理了 gunicorn 进程,抛弃了 websocket-gevent,使用了 gevent,gunicorn -b 127.0.0.1:5000 -k gevent -w 1 module:app,不再报 402 错误了,但是程序还是会一直 pending,一直发请求。。。
开启了 flask-socketio 的日志,现在重新启动,ps -ef | grep guni 出现 2 行,其中 1 行是 work,work 数应该没错,日志现在报错,继续搜索解决方案,
[2018-10-11 15:19:04 +0800] [697] [INFO] Starting gunicorn 19.9.0
[2018-10-11 15:19:04 +0800] [697] [INFO] Listening at: http://127.0.0.1:5000 (697)
[2018-10-11 15:19:04 +0800] [697] [INFO] Using worker: geventwebsocket.gunicorn.workers.GeventWebSocketWorker
[2018-10-11 15:19:04 +0800] [700] [INFO] Booting worker with pid: 700
Server initialized for gevent.
bae5c5f54be848fcabd9e5cfe8ce59fa: Sending packet OPEN data {'sid': 'bae5c5f54be848fcabd9e5cfe8ce59fa', 'upgrades': ['websocket'], 'pingTimeout': 60000, 'pingInterval': 25000}
bae5c5f54be848fcabd9e5cfe8ce59fa: Sending packet MESSAGE data 0
bae5c5f54be848fcabd9e5cfe8ce59fa: Received packet MESSAGE data 0/process_upload_csv
bae5c5f54be848fcabd9e5cfe8ce59fa: Sending packet MESSAGE data 0/process_upload_csv
Traceback (most recent call last):
File "/root/.local/share/virtualenvs/asset-ar0OxIPP/lib/python3.7/site-packages/gevent/pywsgi.py", line 975, in handle_one_response
self.run_application()
File "/root/.local/share/virtualenvs/asset-ar0OxIPP/lib/python3.7/site-packages/geventwebsocket/handler.py", line 82, in run_application
self.process_result()
File "/root/.local/share/virtualenvs/asset-ar0OxIPP/lib/python3.7/site-packages/gevent/pywsgi.py", line 909, in process_result
self.write(data)
File "/root/.local/share/virtualenvs/asset-ar0OxIPP/lib/python3.7/site-packages/gevent/pywsgi.py", line 756, in write
self._write_with_headers(data)
File "/root/.local/share/virtualenvs/asset-ar0OxIPP/lib/python3.7/site-packages/gevent/pywsgi.py", line 777, in _write_with_headers
self._write(data)
File "/root/.local/share/virtualenvs/asset-ar0OxIPP/lib/python3.7/site-packages/gevent/pywsgi.py", line 741, in _write
self._sendall(data)
File "/root/.local/share/virtualenvs/asset-ar0OxIPP/lib/python3.7/site-packages/gevent/pywsgi.py", line 703, in _sendall
self.socket.sendall(data)
File "/root/.local/share/virtualenvs/asset-ar0OxIPP/lib/python3.7/site-packages/gevent/_socket3.py", line 457, in sendall
data_memory = _get_memory(data)
File "/root/.local/share/virtualenvs/asset-ar0OxIPP/lib/python3.7/site-packages/gevent/_socket3.py", line 45, in _get_memory
mv = memoryview(data)
TypeError: memoryview: a bytes-like object is required, not 'str'
2018-10-11T07:20:48Z {'REMOTE_ADDR': '127.0.0.1', 'REMOTE_PORT': '54310', 'HTTP_HOST': '10.26.15.222', (hidden keys: 31)} failed with TypeError

bae5c5f54be848fcabd9e5cfe8ce59fa: Client is gone, closing socket
bae5c5f54be848fcabd9e5cfe8ce59fa: Client is gone, closing socket
ca996671e95d4e54834a745c9129caa8: Sending packet OPEN data {'sid': 'ca996671e95d4e54834a745c9129caa8', 'upgrades': ['websocket'], 'pingTimeout': 60000, 'pingInterval': 25000}
ca996671e95d4e54834a745c9129caa8: Sending packet MESSAGE data 0
ca996671e95d4e54834a745c9129caa8: Received packet MESSAGE data 0/process_upload_csv
ca996671e95d4e54834a745c9129caa8: Sending packet MESSAGE data 0/process_upload_csv
Traceback (most recent call last):
File "/root/.local/share/virtualenvs/asset-ar0OxIPP/lib/python3.7/site-packages/gevent/pywsgi.py", line 975, in handle_one_response
self.run_application()
File "/root/.local/share/virtualenvs/asset-ar0OxIPP/lib/python3.7/site-packages/geventwebsocket/handler.py", line 82, in run_application
self.process_result()
File "/root/.local/share/virtualenvs/asset-ar0OxIPP/lib/python3.7/site-packages/gevent/pywsgi.py", line 909, in process_result
self.write(data)
File "/root/.local/share/virtualenvs/asset-ar0OxIPP/lib/python3.7/site-packages/gevent/pywsgi.py", line 756, in write
@itertools 打扰,我已经重新清理了之后使用 sudo kill -9,确认网站访问不了,然后重新 supervisord -c /etc/supervisord.conf
问题依然还在,日志中是这样,请问这是 work 吗?这和我在 supervior conf 中配置的不一样啊,我用了参数-w 1 呀。
[2018-10-11 14:28:36 +0800] [25625] [ERROR] Connection in use: ('127.0.0.1', 5000)
[2018-10-11 14:28:36 +0800] [25625] [ERROR] Retrying in 1 second.
[2018-10-11 14:28:37 +0800] [25625] [INFO] Listening at: http://127.0.0.1:5000 (25625)
[2018-10-11 14:28:37 +0800] [25625] [INFO] Using worker: geventwebsocket.gunicorn.workers.GeventWebSocketWorker
[2018-10-11 14:28:37 +0800] [25635] [INFO] Booting worker with pid: 25635
[2018-10-11 14:32:15 +0800] [26148] [INFO] Starting gunicorn 19.9.0
[2018-10-11 14:32:15 +0800] [26148] [INFO] Listening at: http://127.0.0.1:5000 (26148)
[2018-10-11 14:32:15 +0800] [26148] [INFO] Using worker: geventwebsocket.gunicorn.workers.GeventWebSocketWorker
[2018-10-11 14:32:15 +0800] [26151] [INFO] Booting worker with pid: 26151
[2018-10-11 14:33:32 +0800] [26345] [INFO] Starting gunicorn 19.9.0
[2018-10-11 14:33:32 +0800] [26345] [INFO] Listening at: http://127.0.0.1:5000 (26345)
[2018-10-11 14:33:32 +0800] [26345] [INFO] Using worker: geventwebsocket.gunicorn.workers.GeventWebSocketWorker
[2018-10-11 14:33:32 +0800] [26348] [INFO] Booting worker with pid: 26348
[2018-10-11 14:37:35 +0800] [26931] [INFO] Starting gunicorn 19.9.0
[2018-10-11 14:37:35 +0800] [26931] [INFO] Listening at: http://127.0.0.1:5000 (26931)
[2018-10-11 14:37:35 +0800] [26931] [INFO] Using worker: geventwebsocket.gunicorn.workers.GeventWebSocketWorker
[2018-10-11 14:37:35 +0800] [26934] [INFO] Booting worker with pid: 26934
[2018-10-11 14:39:18 +0800] [27180] [INFO] Starting gunicorn 19.9.0
[2018-10-11 14:39:18 +0800] [27180] [INFO] Listening at: http://127.0.0.1:5000 (27180)
[2018-10-11 14:39:18 +0800] [27180] [INFO] Using worker: geventwebsocket.gunicorn.workers.GeventWebSocketWorker
[2018-10-11 14:39:18 +0800] [27183] [INFO] Booting worker with pid: 27183
@itertools
@so1n
@greyli 大概率是我 gunicorn 进程的问题,现在正在学习咋清除干净。。。
@itertools
我根据 https://stackoverflow.com/questions/16756624/gunicorn-connection-in-use-0-0-0-0-5000/40894414
[root@VM asset]# sudo fuser -k 5000/tcp
5000/tcp: 18762 18765
[root@VM asset]# supervisorctl status
asset RUNNING pid 20781, uptime 0:00:32
[root@VM asset]# netstat -antlp | grep 5000
tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 20781/python3.7m
tcp 0 0 127.0.0.1:49678 127.0.0.1:5000 TIME_WAIT -
tcp 0 0 127.0.0.1:5000 127.0.0.1:49708 ESTABLISHED 20787/python3.7m
tcp 0 0 127.0.0.1:49650 127.0.0.1:5000 TIME_WAIT -
tcp 0 0 127.0.0.1:5000 127.0.0.1:49706 TIME_WAIT -
tcp 0 0 127.0.0.1:49708 127.0.0.1:5000 ESTABLISHED 25344/nginx: worker
tcp 0 0 127.0.0.1:5000 127.0.0.1:49680 TIME_WAIT -
看日志,还是那些东西,我去 gg 一下日志相关的东西,
[2018-10-11 13:58:33 +0800] [19707] [INFO] Starting gunicorn 19.9.0
[2018-10-11 13:58:33 +0800] [19707] [ERROR] Connection in use: ('127.0.0.1', 5000)
[2018-10-11 13:58:33 +0800] [19707] [ERROR] Retrying in 1 second.
[2018-10-11 13:58:34 +0800] [19702] [ERROR] Connection in use: ('127.0.0.1', 5000)
[2018-10-11 13:58:34 +0800] [19702] [ERROR] Retrying in 1 second.
[2018-10-11 13:58:34 +0800] [19707] [ERROR] Connection in use: ('127.0.0.1', 5000)
[2018-10-11 13:58:34 +0800] [19707] [ERROR] Retrying in 1 second.
[2018-10-11 13:58:35 +0800] [19702] [ERROR] Can't connect to ('127.0.0.1', 5000)
[2018-10-11 13:58:35 +0800] [19707] [ERROR] Connection in use: ('127.0.0.1', 5000)
[2018-10-11 13:58:35 +0800] [19707] [ERROR] Retrying in 1 second.
[2018-10-11 13:58:36 +0800] [19707] [ERROR] Connection in use: ('127.0.0.1', 5000)
[2018-10-11 13:58:36 +0800] [19707] [ERROR] Retrying in 1 second.
[2018-10-11 13:58:37 +0800] [19716] [INFO] Starting gunicorn 19.9.0
[2018-10-11 13:58:37 +0800] [19716] [ERROR] Connection in use: ('127.0.0.1', 5000)
[2018-10-11 13:58:37 +0800] [19716] [ERROR] Retrying in 1 second.
1 ... 48  49  50  51  52  53  54  55  56  57  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2160 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 01:08 · PVG 09:08 · LAX 17:08 · JFK 20:08
Developed with CodeLauncher
♥ Do have faith in what you're doing.