Как вы реализуете триггеры в Rails? - PullRequest
0 голосов
/ 05 января 2012

Моя проблема не кажется уникальной. По сути, у меня довольно дорогой процесс, который должен запускаться регулярно, но только если пользователь запускает определенное состояние.

Например, у меня есть система «анкет», и я анализирую результаты и даю рекомендации по результатам анализа. Анализ и выработка рекомендаций - дорогостоящий процесс, иногда 10-20 с, который может увеличиваться по мере увеличения набора данных. Кстати, я сейчас ищу способы улучшить производительность этого алгоритма.

Мои мысли по этому поводу состоят в том, чтобы реализовать состояние для этого пользователя, которое говорит, что анализ / рекомендации истекли, опросить это состояние и, если оно истекло, запустить дорогостоящий процесс. Я бы тогда установил, что это состояние истекло, когда пользователь заполняет анкету.

Моя текущая система - это rails 3.0, ruby ​​1.9.2 и MySQL, работающие на серверах EC2. В настоящее время я использую DelayedJob, чтобы перенести этот процесс в фоновое задание, но я не реализовал состояние / триггер.

Итак, в общем, мой вопрос: 1) Это даже правильная архитектура с учетом сценария? и 2) Могу ли я использовать какой-нибудь гем или реализацию, которая работает с Rails?

1 Ответ

1 голос
/ 05 января 2012

Вы можете создать задачу быстрого рейка для проверки вопросников, которые требуют анализа, и очередей для обработки в DJ.Затем вы можете запускать грабли с заранее установленными интервалами с помощью Заводной .

. Поскольку вы работаете в EC2, вам не нужно платить ничего больше, чтобы запустить легкий процесс Заводнойи ваша задача rake может легко унаследовать ту же среду, что и ваше приложение, без риска запуска по HTTP-запросу.

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