Frage

Ich möchte Verzögerte verwenden :: Job (oder vielleicht eine geeignetere Auftragswarteschlange zu meinem Problem) zum Versand Jobs auf mehrere Hintergrund-Daemons.

Ich habe mehrere Hintergrund-Dämonen, die verschiedene Aufgaben ausführen. Jeder ist in verschiedenen Jobs in der Warteschlange von der Rails-Anwendung interessiert. Ist dies möglich mit Verzögerte :: Job, oder vielleicht gibt es eine andere Job-Warteschlange, dass besser paßt diese Aufgabe?

War es hilfreich?

Lösung

Seitdem http://github.com/collectiveidea/delayed_job v3.0 erreicht hat und umfasst genannt Warteschlangen! Hervorragend geeignet für einfache gruppierte Warteschlange Bedürfnisse.

Andere Tipps

Wenn Sie wie die Delayed Job, würde es einfach genug sein, mehrere Tabellen zu erstellen, eine pro Warteschlange

Der Arbeiter bekommt es den Tabellennamen von

class Job < ActiveRecord::Base
    MAX_ATTEMPTS = 25
    MAX_RUN_TIME = 4.hours
    set_table_name :delayed_jobs

So Sie, dass bearbeiten könnten und eine Migration pro Tabelle erstellen. Und dann, wenn Sie Ihre Jobs starten, wird ein Arbeiter pro Warteschlange starten.

Quelle: http://github.com/tobi/delayed_job

Resque ist eine Auftragswarteschlange Bibliothek, dass Stützen mehrere Warteschlangen.

Antwort ist hier:

Delayed_job - Mehrere parallele Warteschlangen

Verwenden Sie die Option -i in delayed_job (und nicht die Option -n verwendet für mehrere Arbeiter Laichen) für jeden Auftrag eine eindeutige ID setzen.

DJ Arbeiter greifen nur den ersten Auftrag aus der Warteschlange (es gibt nur eine) und es tun. Jeder Arbeiter ist das gleiche wie jeder andere. Sie können mehrere Arbeiter laufen, aber sie werden alle Arbeiten aus der gleichen Warteschlange.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top