Wir entwickeln eine Webanwendung, bei der wir bei etwa 50% der Schreibanforderungen Daten an mehrere Datenspeicher übertragen und eine beträchtliche Anzahl von Datensätzen in diesen Datenspeichern einfügen und aktualisieren . Um die Antwortzeit zu verbessern, möchten wir solche Anfragen asynchron im Hintergrund bearbeiten.Resque oder Gearman - Auswahl des richtigen Tools für Hintergrundjobs
Unsere Webanwendung wird in Ruby on Rails geschrieben.
Zwei Lösungen, denen ich geneigt bin, sind Resque und Gearman.
Resque: Weitere Informationen hier: http://github.com/blog/542-introducing-resque Resque scheint sehr gut geeignet für Ruby, und es ist speziell für die Verarbeitung von Hintergrundjobs gedacht. "Hintergrund-Jobs können jede Ruby-Klasse oder jedes Ruby-Modul sein, die/das reagiert. Ihre vorhandenen Klassen können problemlos in Hintergrundjobs umgewandelt werden, oder Sie können neue Klassen erstellen, um gezielt zu arbeiten."
Gearman: Es ist nicht speziell nur für Hintergrundjobs für asynchrone Verarbeitung gedacht, aber das ist etwas, was es definitiv tun kann. Anscheinend robuster, oder so scheint es. Ein weiterer Vorteil von Gearman besteht darin, dass der Code des Clients zwar in Ruby enthalten ist, der Worker-Code jedoch in PHP. Obwohl wir gerade eine Ruby-on-Rails-App sind, wissen wir, ob wir in Zukunft vielleicht PHP oder etwas anderes verwenden wollen, je nachdem, welche Aufgabe gerade erledigt wird.
Was würden Sie empfehlen? Hast du Erfahrung mit einem der beiden? Welche Produktionsprobleme im richtigen Leben sollte ich bei der Wahl zwischen den beiden berücksichtigen? Und vergleiche ich hier sogar Apfel zu Apfel?
Ich bin mit dem geschlossenen Status nicht einverstanden. Das Q ist gut formatiert und mit genügend Details versehen, um eine richtige Antwort zu liefern. Debatten sind willkommen und sollten mehr als eine Sichtweise auf die Lösung bieten. – michaelbn