Какие запросы должны обрабатываться веб-сервером, а какие-работником очереди задач?

#python #celery #task-queue

Вопрос:

Я работаю над веб-приложением на Python, которое использует Сельдерей для планирования и выполнения запросов на задания пользователей.

В большинстве случаев запросы, отправленные пользователем, не могут быть решены немедленно, и поэтому мне имеет смысл запланировать их в очереди.

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

Например, помимо планирования заданий, бывают случаи, когда пользователю необходимо выполнить только простой запрос к базе данных или получить статический файл JSON. Должен ли я также делегировать эти «синхронные» запросы очереди/работникам?

Прямо сейчас мои контроллеры веб-серверов ничего не делают, кроме проверки входящих схем запросов JSON и пересылки их в очередь. Каковы плюсы и минусы такого тупого веб-сервера, как этот?

Ответ №1:

Я считаю, что то, как вы это делаете прямо сейчас, плюс предоставление рабочим небольших рабочих мест сейчас-это хорошо. Таким образом, работники будут перегружены в первую очередь в случае атаки или огромного притока запросов. 🙂