Я использую JRuby 1.5.6 на Rails, чтобы создать приложение, которое будет периодически уходить и получать любые подкасты RSS, которые я подписал.jruby on rails варианты планирования
Я выбрал JRuby в первую очередь потому, что я знаком с Java, хочу использовать структуру Rails и, самое главное, я могу выполнять задачи «тяжелого подъема» на Java, когда Ruby не соответствует моим требованиям. До сих пор (и я все еще на ранних стадиях развития) этот гибридный подход работает очень хорошо.
Я сейчас в точке, где мне необходимо реализовать планирование периодических и длительных задач для фонового процесса. Мои требования состоят в том, чтобы иметь систему планирования базы данных, которая, в идеале, хорошо документирована, в настоящее время поддерживается и очищается.
Моя проблема заключается в том, что после многих дней исследований, подходящих для самодельных упакованных решений, у меня, похоже, осталось очень мало вариантов из-за моего использования JRuby.
Некоторые из драгоценных камней, которые я пробовал ...
Руфус планировщик
Использовав это, прежде чем я доволен его интерфейс и документация, однако существует недостаток упорства базы данных, следовательно, прерыватель транзакции для моих требований.
delayed_job
Мой идеальным решением было бы delayed_job. Однако хорошая документация, поддерживаемая и поддерживаемая базами данных, ломается под JRuby из-за отключения ObjectSpace (однако мы можем исправить это путем повторного включения), но более смертельно зависимость от драгоценных камней демонов, которая бросает «вилку», является небезопасной и отключенной по умолчанию на JRuby "из-за ограничений в реализации JRuby.
На github есть вилка, которая не имеет зависимости от демонов, однако я не доволен переходом на вилку с главной ветвью разработки, и мне по-прежнему остается проблема ObjectSpace, в которой я не уверен что касается его воздействия на производительность.
кварц-JRuby
Хотя были различные кварцевые камни, основанные прежде, this very recent offering еще одна попытка обеспечения скользкий рубиново-подобный интерфейс. Существует, однако, минимальная документация, и я не уверен, что, если это может быть поддержано базой базы данных, мое чувство кишки состоит в том, что это не так.
Проблема
В то время как я только подчеркнул 3 варианта здесь, я знаю, что есть другие доступные. Я, однако, не смог найти решение для отметки всех 3 блоков требований (документы, поддерживаемые, поддерживаемые базами данных).
Так вопросы ...
Кто-нибудь еще был в такой ситуации и придумать решение?
Неужели кому-нибудь удалось заставить delayed_job работать в любой форме?
Есть ли какие-либо лучшие решения там, которые я забыл и буду удовлетворять моим потребностям?
** Обновление ** Я думал, что стоит опубликовать окончательное решение, которое я решил использовать с JRuby, теперь в 1.7.2. Моя текущая настройка использует Sidekiq и Clockwork. Это оказалось надежным долгосрочным решением. – 2013-01-22 01:06:29