Функция вызывает другую функцию и завершается до получения результата

Я разрабатываю API с Django Rest Framework для обработки некоторых подписок

Я хотел сделать регистрацию в 2 шага.

Сначала я регистрирую пользователя в своей базе данных, после чего хочу зарегистрировать его в другом сервисе (например, email-маркетинг).

Я должен сделать это в два шага, потому что регистрация пользователя во внешних сервисах может занять некоторое время (или сервис может быть недоступен во время запроса), и я не хочу, чтобы пользователи ждали все, чтобы они могли перейти на другие страницы.

Моя идея заключается в следующем: После регистрации пользователя в моей базе данных, я бы return http 200_ok на фронтенде, чтобы пользователь мог перейти на другие страницы, и в моем бэкенде я бы использовал эти данные, чтобы попытаться зарегистрировать пользователя во внешних сервисах столько раз, сколько необходимо (например: ожидание, если другие сервисы недоступны)

Но rest_framework позволяет мне только return Response() (я использую представления на основе классов), поэтому я могу только возвращать http 200_ok, но если я возвращаю, функция завершается, и мои другие функции (которые займут больше времени для выполнения) также завершаются.

Есть ли способ сделать это?

Посмотрите на https://django-background-tasks.readthedocs.io/en/latest/

Это может помочь решить ваши фоновые задачи

Вернуться на верх