Я использую JRuby 1.5.6 на Rails, чтобы создать себе приложение, которое будет периодически уходить и получать любые RSS-подкасты, на которые я тоже подписан.
Я выбрал JRuby прежде всего потому, что я знаком с Java, хочу использовать инфраструктуру Rails и, что важнее всего, я могу выполнять «тяжелые» задачи в Java, когда Ruby не соответствует моим требованиям. До сих пор (и я все еще на ранних стадиях разработки) этот гибридный подход работал очень хорошо.
Сейчас я нахожусь в точке, где мне нужно реализовать планирование периодических и длительных задач для фонового процесса. Мои требования состоят в том, чтобы иметь систему планирования на основе базы данных, которая в идеале хорошо документирована, в настоящее время поддерживается и чиста.
Моя проблема сейчас заключается в том, что после многих дней исследований подходящих решений, упакованных в самоцветы, у меня остается очень мало вариантов из-за моего использования JRuby.
Некоторые из драгоценных камней, которые я пробовал ...
rufus scheduler
Воспользовавшись этим до того, как я доволен его интерфейсом и документацией, тем не менее, отсутствует постоянство базы данных, поэтому я нарушаю условия для моих требований.
delayed_job
Мое идеальное решение - это delayed_job. Хорошая документация, все еще поддерживаемая и поддерживаемая базой данных, однако, ломается под JRuby из-за выключения ObjectSpace (однако мы можем исправить это путем повторного включения), но более пагубно зависимость от гема демонов, который выбрасывает вилку, небезопасна и отключена по умолчанию на JRuby "ошибка из-за ограничений в реализации JRuby.
На github есть разветвление, которое не зависит от демонов, однако я не рад переключиться на разветвление из основной ветки разработки, и у меня все еще остается проблема ObjectSpace, в которой я не уверен, так как к его влиянию на производительность.
кварц-JRuby
Хотя раньше было множество драгоценных камней на основе кварца, это самое последнее предложение является еще одной попыткой предоставить гладкий рубиновый интерфейс. Тем не менее, есть минимальная документация, и я не уверен, что это может быть поддержано базой данных, мое внутреннее ощущение, что это не так.
Проблема
Хотя я выделил только 3 варианта, я знаю, что есть и другие. Однако я не смог найти решение, чтобы отметить все 3 поля требований (документы, ведение, поддержка базы данных).
Так что вопросы ...
Кто-нибудь еще был в этой ситуации и придумал решение?
Кому-нибудь удалось заставить delayed_job работать в любой форме?
Есть ли какие-нибудь лучшие решения, которые я упустил из виду и удовлетворит мои потребности?