Как проверить состояние запущенного метода - PullRequest
0 голосов
/ 23 июня 2019

У меня есть простой сервис Flask:

@app.route('/')
def long_method():
   #A long blocking thread task

Как добавить второй метод, чтобы проверить, выполняется ли в данный момент long_method, и вернуть соответствующее сообщение?

1 Ответ

1 голос
/ 23 июня 2019

long_method должен вернуться к вызывающей стороне как можно скорее.Он должен вернуть уникальный номер, который будет использоваться вторым методом (назовем его check_status).На стороне сервера вам нужно сохранить указание, которое отображает это число в статус работающей функции

@app.route('/')
def long_method():
   action_id = get_action_id() 
   _long_method(action_id) # call the method that takes time on another thread
   # push the action_id to a dict: action_id --> 'running'
   # when _long_method it should update the dict to action_id --> 'done'

check_status должно посмотреть на эту таблицу и вернуть статус

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...