Ich benutze JRuby 1.5.6 auf Rails, um mir eine Anwendung zu bauen, die regelmäßig entfernt wird und alle RSS-Podcasts abrufen, die ich auch abonniert habe.jruby on rails Planungsoptionen
Ich habe JRuby hauptsächlich gewählt, weil ich mit Java vertraut bin, das Rails-Framework nutzen möchte und vor allem kann ich die "Heavy Lifting" -Tasks in Java ausführen, wenn Ruby meine Anforderungen nicht erfüllt. Bis jetzt (und ich bin noch in den frühen Entwicklungsphasen) hat dieser hybride Ansatz sehr gut funktioniert.
Ich bin jetzt an einem Punkt, wo ich benötigt, um die Planung von periodischen und lang laufenden Aufgaben zu einem Hintergrundprozess zu implementieren. Meine Anforderungen sind ein datenbankgestütztes Planungssystem, das im Idealfall gut dokumentiert, aktuell gepflegt und sauber ist.
Mein Problem ist jetzt, dass nach vielen Tagen der Suche nach geeigneten aus dem eigenen Edelstein verpackt Lösungen, ich habe mit sehr wenigen Optionen wegen meiner Verwendung von JRuby übrig bleiben.
Einige der Edelsteine Ich habe versucht ...
rufus Scheduler
dies Nachdem verwendet, bevor ich mit seiner Schnittstelle und Dokumentation glücklich bin, aber es ist ein Mangel an Datenbankpersistenz, daher ein Deal Breaker für meine Anforderungen.
delayed_job
Mein würde ideale Lösung delayed_job sein. Gute Dokumentation, die immer noch gepflegt wird und Datenbank gesichert wird, bricht jedoch unter JRuby ab, weil ObjectSpace ausgeschaltet ist (wir können das jedoch durch erneute Aktivierung beheben), aber tödlicher ist die Abhängigkeit von dem Daemonen-Juwel, das einen "fork" wirft, unsicher und deaktiviert standardmäßig auf JRuby "Fehler aufgrund von Einschränkungen in der JRuby-Implementierung.
Es gibt eine Verzweigung auf Github, die keine Abhängigkeit von Daemons hat, aber ich bin nicht glücklich, zu einer Verzweigung aus dem Hauptentwicklungszweig zu wechseln, und ich bin immer noch mit dem ObjectSpace-Problem, das ich unsicher bin hinsichtlich seiner Auswirkungen auf die Leistung.
quarz jruby
Während es vor verschiedenen Quarz basiertes gems gewesen ist, ist ein weiterer Versuch, bei this very recent offering einem glatten rubin wie Interface. Es gibt jedoch nur eine minimale Dokumentation und ich bin mir nicht sicher, ob dies datenbankgestützt sein kann, mein Bauchgefühl ist, dass es das nicht ist.
Das Problem
Während ich hier nur drei Optionen hervorgehoben habe, ich bin mir dessen bewusst, dass es anderen zur Verfügung. Ich konnte jedoch keine Lösung finden, um alle drei Anforderungsfelder anzukreuzen (Dokumente, gepflegt, Datenbank gesichert).
So sind die Fragen ...
Hat mit einer Lösung in dieser Situation und kommen sonst jemand gewesen?
Hat es irgendjemanden geschafft, in jeder Form zu arbeiten?
Gibt es bessere Lösungen, die ich übersehen habe und die meine Bedürfnisse erfüllen?
** Update ** Ich dachte, es lohnt sich, die endgültige Lösung zu veröffentlichen, die ich für die Verwendung mit JRuby festgelegt habe, jetzt bei 1.7.2. Mein aktuelles Setup verwendet Sidekiq und Clockwork. Es hat sich als eine zuverlässige langfristige Lösung erwiesen. –