Я хотел бы запустить процесс как демон в AWS Infrastructure, который отвечает за чтение очереди AWS SQS и выполняет некоторый процесс.Запуск процесса как Daemon на инфраструктуре AWS
Мой первый подход заключается в использовании контейнера докеров, развернутого в службе контейнеров ECS. Поэтому я буду на while true loop
, спать несколько секунд. Используя это, я могу контролировать время сна между обработкой, поэтому, если моя очередь SQS заполнена, я могу уменьшить время сна. Итак,
Я знаю, что можно использовать AWS Lambda, запланированное как задание cron, но я не контролирую время cron (уменьшение или увеличение ответа квадратного размера).
Лямбда-подход AWS проще, и нет необходимости в «любой» инфраструктуре, но она менее гибкая. Кто-нибудь знает другой подход?
Вы можете использовать планировщик Lambda и внутри вашего лямбда-обработчика, вы можете просто спросить SQS для 20 сообщений (я считаю, что это максимум, который вы можете получить за раз). Если он получил все 20 сообщений, то до того, как он закончит, он повторно вызывает себя, используя aws-sdk ('AWS.Lambda.invoke (context.functionName)'). Если было менее 20 сообщений, оно просто успешно завершилось после обработки этих сообщений. – idbehold