Извлекайте API с помощью Django RF, сельдерея и RabbitMQ

#python #django-rest-framework #rabbitmq #celery

Вопрос:

Я работаю над приложением для извлечения нескольких API Rest и, в свою очередь, предоставляю данные из этих извлечений в api Rest.

Api, которые мне нужно получить, работают медленно и не имеют одинаковой структуры. Все выборки должны быть повторяющимися, ежедневными.

Я подумываю об использовании :

-Платформа Django Rest для предоставления api, использования анализаторов и сериализаторов для обработки полученных данных и хранения агрегированных данных, подлежащих предоставлению, в Postgresql.

-Сельдерей для параллельного запуска рабочих и/или дочерних процессов

-Сельдерей взбейте, чтобы регулярно получать и обновлять данные.

-RabbiMq в качестве посредника сообщений для Сельдерея.

Могу ли я использовать сельдерей для выполнения вызовов выборки в api или мне нужно написать специальный скрипт выборки?

И как мне вернуть результат из Сельдерея в Django RF для его хранения? Нужно ли мне использовать другую очередь и работника сельдерея для ответа ?

Лучше ли иметь 1 работника с несколькими дочерними процессами или нескольких работников с 1 дочерним процессом в каждом ?

Комментарии:

1. And how do I get the result back from Celery to Django RF to store it? Do I need to use another queue and celery worker for the response ? Вы пробовали использовать объект результата, возвращаемый apply_async (), и вызывать result.get()? Более подробная информация здесь: docs.celeryproject.org/en/stable/userguide/calling.html

2. Я только что проверил это, спасибо @nick-odell , кажется многообещающим