У меня есть следующая проблема:
ClientA -> запрос -> Flask Сервер -> раскрутить поток (без объединения) и вернуть 200
Ситуация:
- Когда запрос заканчивается (возвращается 200), поток приостанавливается.
- Когда поступает другой запрос, поток возобновляется
ie.
I spin up a thread that checks the database for a user, then posts a message to slack.
When the request returns, the thread never finishes executing, the message was never sent, until the next request comes in and somehow resumed the thread and then the message was sent to slack.
Примечания:
Разве поток не должен работать, пока программа не завершится? почему он приостанавливается, когда запрос возвращается и возобновляется, когда поступает другой запрос. Кажется, что поток не работает, когда flask бездействует.
Мой код такой, как показано ниже:
def handle(self, data):
# some operation that takes ~3secs
# post message to slack
return
def post(self):
c = threading.Thread(target=handle, args=(data, ))
c.start()
return "", 200
Окружающая среда:
Docker контейнер