два сервиса. Джанго и воркер. Джанго принимает все запросы, как положено. Один из запросов сгенерировать что-то. Этот запрос может работать до 15-20 минут (ну ничего страшного тяу тяу тяу). На данные момент мы это реализуем через redis queue (rq). У нас есть воркеры, которые как консьюмеры слушают очередь и берут задачу в работу. Вопрос в следующем, как можно скейлить воркеры автоматически?
Или как лучше вовсе это реализовать?
Например, в очереди 100 задач и мы готовы увеличить количество воркеров до 50 штук. Либо задачи закончились и нам не нужны эти процессы больше.
Что можно сделать в таком случае, чтобы скейлить воркеры по размеру очереди? Как их скейлить?
Для этого мы используем амазон. Лямбды Амазона не подходят, не попадают в лимит. Да и дорого, хотелось бы накостылять своё решение.
Был план создать какой-то сервис на пайтона, который смотрит размер очереди и в случае чего увеличивает/уменьшает количество воркеров. Но как из пайтона их скейлить?
Все находится на Амазоне, внутри ECS.
Спасибо за помощь 🙏
https://github.com/ray-project/ray
Обсуждают сегодня