Прервать бэкэнд-функцию и дождаться ответа фронтенда - PullRequest
0 голосов
/ 10 июля 2020

Я ищу хорошее решение для реализации рукопожатия между внутренним сервером python и интерфейсом реагирования, подключенным через веб-сокет.

Интерфейс позволяет пользователю загружать файл, а затем отправлять его в бэкэнд для обработки. Теперь возможно, что при обработке возникнут некоторые проблемы и понравится подтверждение пользователя для продолжения или отмены - и именно здесь я застрял.

Моя текущая реализация имеет разные «конечные точки» в бэкэнде, которые затем вызывают разные реализации функций и очередь, которая непрерывно обрабатывается, а содержимое (сообщения) отправляется во внешний интерфейс. Но это всегда полные действия, они либо успешны, либо неуспешны, и, соответственно, возвращается сообщение. У меня нет системы, чтобы прервать выполняющуюся задачу (например, обработку файла), отправить запрос во внешний интерфейс, а затем дождаться ответа, прежде чем продолжить функцию.

Есть ли шаблон проектирования или общий подход для этого какая проблема?

1 Ответ

0 голосов
/ 10 июля 2020

Сколько времени занимает обработка? Возможно, хорошее решение - настроить брокера сообщений, например RabbitMQ, и создать очередь для этого процесса. Во внешнем интерфейсе вы должны создать панель, чтобы видеть состояние процесса, который выполняется в задаче asyn c, и, если он обнаружил некоторые проблемы, сообщите об этом пользователю и спросите, что делать.

...