Получение сообщений SQS с помощью кода запуска сервера ИЛИ кода инициализации (Ruby Rails)

#amazon-web-services #ruby-on-rails-3 #amazon-sqs

#amazon-веб-сервисы #ruby-on-rails-3 #amazon-sqs

Вопрос:

Я занимаюсь внедрением сервиса Amazon SQS для обработки большого количества сообщений для сохранения его базы данных. Я могу отправить сообщение с помощью right_aws gem. Я также могу извлечь сообщение с примером, предоставленным для gem.

В конечном итоге у меня может возникнуть несколько экземпляров сервера ruby / rails, которые извлекают и обрабатывают сообщение (используя функцию блокировки и тайм-аута SQS). Я хотел бы изучить возможность извлечения сообщения с помощью какого-либо сценария запуска или инициализации во время запуска сервера ruby / rails, и чтобы компонент всегда работал и обрабатывал сообщения до остановки сервера.

Может кто-нибудь, пожалуйста, поделиться ссылкой на то, как это может быть реализовано?

Ответ №1:

Лучший способ сделать это, если обработка не является частью онлайн-запроса, на который вам нужно ответить, — написать специальные скрипты, в которых всегда будет выполняться цикл (и, возможно, спящий режим, если работы не так много).

Вы извлекаете сообщение, обрабатываете его, удаляете и переходите к следующему.

Запустите эти процессы при запуске компьютера и отслеживайте их, используя что-то вроде Supervisorord