Python WSGIREF: убить сервер при условии - PullRequest
0 голосов
/ 19 октября 2019

У меня есть следующий код:

from wsgiref import simple_server
import falcon

app = falcon.API(middleware=Auth())
msg = Something()
app.add_route('/hello', msg)     

httpd = simple_server.make_server(127.0.0.1, 8987, app)

m_process = Thread(target=httpd.serve_forever(poll_interval=0.5), name="m_process")
m_process.start()

s = Thread(target=httpd.shutdown(), name="s_process")
s.start()

В логике класса Something() я увеличиваю или уменьшаю счетчик, который я сохранил в базе данных на основе некоторой логики. Я хотел бы вызвать поток s на основе условия в базе данных. По сути, я пытаюсь выключить сервер. Я использовал объяснение в http://code.nabla.net/doc/wsgiref/api/wsgiref/simple_server/wsgiref.simple_server.WSGIServer.html, чтобы сделать это. Но это, похоже, не убивает сервер. Что я делаю не так?

1 Ответ

0 голосов
/ 20 октября 2019

Хорошо, я получил ответ на свой вопрос. Я делал глупую ошибку при настройке target m_process. Ниже работает

from wsgiref import simple_server
import falcon

app = falcon.API(middleware=Auth())
msg = Something()
app.add_route('/hello', msg)     

httpd = simple_server.make_server(127.0.0.1, 8987, app)

m_process = Thread(target=httpd.serve_forever, name="m_process")
m_process.start()

s = Thread(target=httpd.shutdown(), name="s_process")
s.start()
...