Rails で JRuby 1.5.6 を使用して、定期的に停止し、購読している RSS ポッドキャストを取得するアプリケーションを自分で構築しています。
私が JRuby を選んだ主な理由は、私が Java に精通していること、Rails フレームワークを利用したいこと、そして最も重要なこととして、Ruby が要件を満たしていない場合に Java で「重労働」タスクを実行できることです。現在まで (私はまだ開発の初期段階にあります)、このハイブリッド アプローチは非常にうまく機能しています。
私は今、定期的で長時間実行されるタスクのスケジューリングをバックグラウンド プロセスに実装する必要があるところまで来ました。私の要件は、理想的には、十分に文書化され、現在維持されていてクリーンな、データベースに支えられたスケジューリング システムを持つことです。
私の問題は、何日もかけて適切な自己 gem パッケージ化されたソリューションを調査した後、JRuby を使用しているため、選択肢がほとんど残っていないように見えることです。
私が試した宝石のいくつか...
ルーファス スケジューラ
インターフェイスとドキュメントに満足する前にこれを使用したことがありますが、データベースの永続性が不足しているため、私の要件の取引ブレーカーです。
遅延ジョブ
私の理想的な解決策はdelayed_jobです。優れたドキュメントは引き続き維持され、データベースがサポートされていますが、JRuby では ObjectSpace がオフになっているために機能しなくなります (ただし、再度有効にすることでこれを修正できます)。 JRuby 実装内の制限により、JRuby ではデフォルトで」エラーが発生します。
デーモンに依存しない github のフォークがありますが、メインの開発ブランチからフォークに切り替えることに満足しておらず、ObjectSpace の問題がまだ残っており、そのパフォーマンスについて確信が持てません。影響。
クォーツ-jruby
これまでにもさまざまなクォーツベースの宝石がありましたが、このごく最近の製品は、洗練されたルビーのようなインターフェイスを提供する別の試みです。ただし、ドキュメントは最小限であり、これがデータベースに裏付けられているかどうかはわかりませんが、そうではないというのが私の直感です。
問題
ここでは 3 つのオプションのみを取り上げましたが、他にも利用可能なオプションがあることは承知しています。ただし、3 つの要件ボックスすべて (ドキュメント、保守、データベース バックアップ) にチェックを入れるための解決策を見つけることができませんでした。
質問は...
他の誰かがこの状況に陥り、解決策を思いついたことがありますか?
誰かがdelayed_jobを何らかの形で機能させたことがありますか?
私が見落としていて、私のニーズを満たすより良い解決策はありますか?