У меня есть проект Django + Celery. Одна из задач Celery выполняет множество небольших HTTP-запросов, используя библиотеку запросов, в то время как другие делают много разговоров с базой данных через ORM Django. Задача HTTP-тяжелая уже запущена в своем собственном работнике сельдерея, используя собственную очередь сельдерея. Я хочу, чтобы HTTP-тяжелый рабочий использовал eventlet, оставив остальные задачи использовать пул выполнения предпросмотра. Как мне это сделать?Django + Celery + Requests + Eventlet
Celery docs похоже, что я получаю магические силы параллелизма, просто запустив celery ... -P eventlet
. Тем не менее, this SO answer говорит, что мне нужно использовать исправленную версию библиотеки запросов. Что правильно? Кроме того, если я должен явно исправлять запросы, должен ли я ставить эту задачу в отдельный модуль из остальных обычных задач, чтобы эти другие задачи могли продолжать использовать обычную версию запросов?
спасибо. Таким образом, похоже, что если вы используете исправленные запросы за пределами цикла eventlet, он работает отлично, а IO блокирует то, как он работает с ванильными запросами. – ipartola