Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 25, 2018 16:11:06

winmasta
Зарегистрирован: 2017-10-03
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Неблокирующий запуск функции

Всем привет, пишу кое-какое API на Flask и возник вопрос, как вернуть значение из функции и потом продолжить выполнение логики. Поясню кейс. При изменении записи в CRM срабатывает вебхук который посылает HTTP запрос на наше API с измененными данными. В этот момент запись блокируется и мы получаем HTTP запросом уже к API CRM ее старые значения. Далее происходит обработка данных, формирование email и отправка и все это время запись висит заблокированной (в среднем 4 секунды), но нам можно отпустить запись уже после получения ее старых значений, для этого нужно в ответ на хук вернуть 200 ОК. Есть конечно вариант сохранить данные, вернуть 200 ОК и потом уже каким-то образом поработать с данными, но мне кажется возможно сделать все на лету. Понимаю, что нужно копать в сторну asyncio, почитал, посмотрел, но пока не могу понять как это сделать. Может был у кого подобный опыт ?

Офлайн

#2 Июнь 25, 2018 20:11:06

VadimK
Зарегистрирован: 2013-07-03
Сообщения: 199
Репутация: +  16  -
Профиль   Отправить e-mail  

Неблокирующий запуск функции

Смотрeть в сторону задач (tasks). К примеру celery или uwsgi.

Офлайн

#3 Июнь 26, 2018 04:37:57

winmasta
Зарегистрирован: 2017-10-03
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Неблокирующий запуск функции

VadimK
Смотрeть в сторону задач (tasks). К примеру celery или uwsgi.
спасибо поизучаю

Офлайн

#4 Июнь 26, 2018 06:53:26

winmasta
Зарегистрирован: 2017-10-03
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Неблокирующий запуск функции

Прикрутил uwsgi-tasks ибо проект как раз на uwsgi и крутится, все работает отлично.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version