Что я должен использовать неглобальные промежуточные программы Django или триггеры Django

#python #django #django-rest-framework #django-middleware #django-3.1

#python #django #django-rest-framework #django-промежуточное программное обеспечение #django-3.1

Вопрос:

Моя проблема в основном заключается в том, что в настоящее время я создаю настраиваемую систему управления на основе Django (3.1) Python (v3.7.9), в которой я извлекаю данные из стороннего инструмента. Инструмент не предоставляет мне веб-ссылки на все данные, которые я хочу для визуализации и анализа.

Webhook предоставляет мне биты информации, и я должен выполнить запрос GET к их API, чтобы получить остальные сведения, если их нет в моей базе данных. Они запрашивают успешный ответ webhook в течение 5 секунд, иначе это вызовет повторную попытку.

Если я попытаюсь выполнить запрос get в функции webhook, время в 5 секунд будет превышено. решения, которые я придумал, касались промежуточного программного обеспечения Django или триггеров Django, поэтому, что лучше всего подходит для моей проблемы, я немного смущен.

Примечание: я не могу понизить версию Django, поскольку мне приходится использовать асинхронные функции

Ответ №1:

Это было бы хорошим вариантом использования для планировщика задач, такого как Celery. Django-triggers — это интерфейс к планировщику сельдерея, поэтому он может подойти. Имейте в виду, Celery должен запускаться как отдельный процесс рядом с django.

Другим популярным планировщиком задач является rq-scheduler. Это предлагает простую реализацию с использованием Redis в качестве очереди сообщений. * Обратите внимание, что приложения с балансировкой нагрузки / с несколькими экземплярами нелегко настроить с помощью RQ.