Назад | Перейти на главную страницу

Фляга для потоковой передачи uwsgi застревает

im Использование Python 3.7.3, uwsgi 2.0.18, (образ контейнера докеров python: 3-stretch)

У нас есть среда разработки, в которой мы запускаем наш код во флаконе, и мы меняем его на uwsgi, когда тестируем его на производстве. Я запускаю скрипт py, который получает аудио pcm в прямом эфире из redis (другой контейнер)

Теперь, когда мы запускаем его на колбе, все работает нормально! когда мы запускаем его на потоках uwsgi, он застревает и умирает.

Настройки uwsgi:

[uwsgi]
http =  :5000
socket = :3031
wsgi-env-behaviour=holy
master=1
uid=1000
gid=2000
master=1
processes = 1
threads = 1
protocol = uwsgi
wsgi-file = server.py
chdir = /app/base/
callable = app
http-raw-body
single-interpreter
paste-logger = true
honour-stdin
#logto = /tmp/errlog
vacuum = true
harakiri-verbose = true
harakiri = 60
cpu-affinity =3
http-timeout = 60
optimize = 2
http-keepalive
listen=30
workers = 40
ugreen
reaper
start_response-nodelay
greenlet

журналы:

HARAKIRI: -- wchan> 0
Wed Jun  5 15:55:48 2019 - HARAKIRI !!! worker 24 status !!!
Wed Jun  5 15:55:48 2019 - HARAKIRI [core 0] XX.XX.XX.XX- GET /pcm_json since 1559750087
Wed Jun  5 15:55:48 2019 - HARAKIRI !!! end of worker 24 status !!!
Wed Jun  5 15:55:48 2019 - *** HARAKIRI ON WORKER 27 (pid: 32, try: 1) ***

DAMN ! worker 10 (pid: 15) died, killed by signal 9 :( trying respawn ...
Respawned uWSGI worker 10 (new pid: 64)

В чем основное различие между flask и uwsgi в отношении запросов на отправку и получение сообщений?

После того, как гуглины 2 дня подряд, независимо от того, насколько я изменил настройки, ничего не помогает, я пробовал все, что предлагалось.

мы рассматриваем возможность перехода на Gunicorn .. Спасибо.

РЕДАКТИРОВАТЬ:

это код запроса sendind:

conn = http.client.HTTPConnection(server, port)
 headers = { "ID": ID, "debugLevel": 1, "Multipart": 1, "Audio": 1, "Accept": "application/json" } conn.request("GET", "/pcm", "", headers)
 ret = conn.getresponse() 

это еще одна ошибка, которую я вижу в cli

Unhandled exception in thread started by <function get_pcm>

Итак, я понял, что привело к сбою рабочих uwsgi:

" harakiri = 60" 

в моем uwsgi.ini conf, потому что наше рабочее соединение работает долгое время (дает прямую трансляцию), я полагаю, что харакири подумал, что это было перегрузкой или заняло много времени, поэтому через 60 секунд он выйдет из строя.

для нашего сервера - мультиконнект и livestream работают такие настройки:

[uwsgi]
http =  :5000
socket = :3031
wsgi-env-behaviour=holy
master=1
uid=1000
gid=2000
master=1
threads = 4
protocol = uwsgi
wsgi-file = machine.py
chdir = /app
callable = app
http-raw-body
single-interpreter
paste-logger = true
honour-stdin
cpu-affinity =3
http-timeout = 60
optimize = 2
http-keepalive
listen=30
workers = 80
ugreen
reaper
start_response-nodelay
greenlet
offload-threads = 10