Обработка элементов в очереди SQS с помощью php-скрипта

Вот моя ситуация:

У меня есть скрипт, который получает необработанные данные, сохраняет их в базе данных, получает идентификатор элемента, а затем отправляет его в очередь SQS Amazon.

У меня есть другой скрипт (написанный на PHP), который извлекает необработанные данные из базы данных и обрабатывает их. (обычно это занимает пару минут.

Недостающая часть - как извлечь сообщения из SQS для обработки. Частота обработки новых данных варьируется, она может варьироваться от нескольких элементов в час до десятков элементов в минуту.

Одним из способов было бы иметь задание cron, которое запрашивает SQS на наличие новых сообщений и запускать скрипт обработки (возможно, он должен быть многопоточным и написан не на php. Python или Ruby). Проблема cron заключается в том, что он довольно неэффективен, в фазах высокой нагрузки он будет перегружен, а в тихих фазах он будет делать бесполезные вызовы.

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

Есть мысли о лучшем решении? Подходит ли SQS для этой задачи? Какой самый эффективный способ прослушивания и обработки очереди?

0 ответов

Другие вопросы по тегам