Мое приложение сильно зависит от услуг AWS, и я ищу оптимальное решение на их основе. Веб-приложение запускает запланированное задание (предположительно повторяется бесконечно), которое требует определенного количества ресурсов, которые необходимо выполнить. Один запуск задачи обычно занимает максимум 1 мин.Планирование долгосрочных задач с использованием служб AWS
Текущая идея состоит в том, чтобы передавать задания через SQS и создавать работников на экземплярах EC2 в зависимости от размера очереди. (эта часть более или менее ясна) Но я изо всех сил стараюсь найти правильное решение для фактического запуска заданий через определенные промежутки времени. Предположим, мы имеем дело с 10000 заданиями. Поэтому для планировщика запускать 10k cronjob (сама работа довольно проста, просто передавая описание задания через SQS) в то же время кажется безумной идеей. Таким образом, фактический вопрос заключается в том, как автомасштабировать сам планировщик (учитывая сценарии при перезапуске планировщика, создании нового экземпляра и т. Д.)? Или планировщик является избыточным как приложение, и разумнее полагаться на функции AWS Lambda (или другие сервисы, обеспечивающие планирование)? Проблема с использованием функций Lambda - это определенное ограничение, а объем памяти, предоставляемый 128mb, обеспечиваемый одной функцией, на самом деле слишком большой (20mb кажется более чем достаточно)
В качестве альтернативы, рабочий сам может подождать определенное количество времени и сообщить планировщик, что он должен запускать работу еще раз. Скажем, если частота 1 часы:
1. Scheduler sends job to worker 1
2. Worker 1 performs the job and after one hour sends it back to Scheduler
3. Scheduler sends the job again
Проблема здесь, однако, является возможность того, что работник будет масштабируется в
Bottom Line Я пытаюсь достичь легкого планировщика, который будет. не требуют автомасштабирования и служат в качестве концентратора с единственной целью передачи описаний должностных обязанностей. И, конечно же, не следует затухать при перезагрузке службы.
«долго выполняющиеся задачи» .. «займет максимум 1 мин»:/ –