Каковы хорошие способы обработки очереди Amazon EC2 для создания миниатюр? - PullRequest
1 голос
/ 21 января 2012

Я создаю веб-фотогалерею. Используя Amazon EC2, я хотел бы иметь возможность «раскручивать» машины для создания миниатюр при высокой нагрузке и раскручивать их при низкой нагрузке.

Я думаю о том, чтобы иметь базу данных с изображениями, для которых должны быть созданы их миниатюры, с полями, подобными приведенным ниже:

image_id (32-char string)
thumbs_generated (true or false)
currently_generating (true or false)
s3_key (32-char string)

Когда новый экземпляр EC2 раскручивается, он подключается к базе данных и получает изображение, где для thumbs_generated и current_generating задано значение false. Как только изображение получено, current_generating получает значение true. Когда генерация завершена, для thumbs_generated установлено значение true, и сценарий повторяется с новым изображением.

Это хорошая стратегия? Какие-нибудь улучшения или вещи, о которых следует помнить из опыта?

Будет ли это хорошим вариантом использования простой службы обмена сообщениями Amazon или нет необходимости?

Заранее спасибо.

1 Ответ

2 голосов
/ 06 февраля 2012

Вы можете сделать это с помощью Amazon SQS (Simple Queue Service).

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

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

Проверьте этот пост , о ком-то, кто сделал подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...