2010-10-18 3 views
1

У меня есть приложение rails (которое действует как какой-то балансировщик нагрузки для группы принтеров), которому необходимо выполнить некоторую фоновую обработку. Логика фоновой обработки должна перебирать все доступные (не занятые) принтеры и отправлять задание на печать через TCP-сокет каждому, если есть заданные задания.Рельсы параллельной обработки фона

Я знаю, что есть несколько решений, которые касаются обработки фона (Starling/Workling/ActiveMQ, BackgroundRB, Delayed Job и т. Д.), Но что было бы лучшим в соответствии с моими потребностями (мне нужен один рабочий/thread для каждого принтера, доступного в настоящее время)?

+0

Я могу говорить только за Delayed_Jobs, но я не могу себе представить, что это не сработает для вас. Вы можете указать, сколько раз попробовать каждое задание, и оно будет проходить через каждый из них. – Trip

ответ

0

DelayedJob - хорошее и простое решение, потому что оно интегрировано в вашу среду и использует вашу базу данных приложений. Это идеально, если вам не нужно начинать с отдельной среды. Другими словами, вам не нужны дополнительные требования, а не ваше приложение Rails и сама база данных.

Resque - также отличное решение, но для этого требуется использовать базу данных Redis.

Я не пробовал другие решения, потому что они были слишком сложными или заменены Redis и DelayedJob.

+0

это resque, а не спасение – shingara

+0

@shingara упс, вы правы. Исправлена. –

Смежные вопросы