Django с Python Ayncio для выполнения фонового задания - PullRequest
1 голос
/ 29 марта 2019

У меня есть два сервера: основной сервер, который предоставляет REST API для приема данных от пользователя и ведения списка сведений о продукте.Этот сервер также отвечает за предоставление списка продуктов (подмножество данных о продуктах) вторичному серверу, как только продукт обновляется / создается.Также обратите внимание, что дополнительный URL-адрес зависит от сведений о продукте, а не от сервера исправлений.

Основной сервер, написанный на Django.Я использовал сигнал db dango модели в качестве обновления продукта, создания и удаления события.Теперь проблема в том, что я не хочу блокировать мой вызов REST основного сервера, пока он не заполняет детали на дополнительном сервере.Для этого мне нужны некоторые вещи планировщика, то есть создать задачу для заполнения данных в фоновом режиме, не блокируя мой текущий поток.

Я обнаружил, что модуль python asyncio поставляется с функцией 'run_in_executor', и он работает до сих пор, ноУ меня нет сведений о побочном эффекте запуска django на сервере wsgi, кто-нибудь может объяснить?или любой другой альтернативный?

Я нашел канал django, но для этого нужны дополнительные вещи, такие как отдельный запуск рабочего потока, кэш redis.

1 Ответ

0 голосов
/ 29 марта 2019

Вы должны использовать Django Celery для выполнения задач в асинхронном режиме или в фоновом режиме.

Celery - очередь задач с включенными батареями.Он прост в использовании, так что вы можете начать работу без изучения всей сложности решаемой проблемы.

Вы можете получить больше информации о сельдерее от http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html#first-steps

...