Функция вызывает другую функцию и завершается до получения результата
Я разрабатываю 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/
Это может помочь решить ваши фоновые задачи