Hat ActiveJob Warteschlangen mit bestimmter Priorität?

8

Wenn ich mir den folgenden Job anschaue, würde ich annehmen, dass der Job in einer Warteschlange low_priority ausgeführt wird.

%Vor%

Ich würde dem zustimmen, aber das ist nur der Name der Warteschlange korrekt? Es hat eigentlich nichts mit Priorität zu tun. Wenn ich beispielsweise einen Job mit einer Warteschlange mit dem Namen :my_queue erstellt habe, würde er so behandelt werden, als hätte er dieselbe Priorität wie eine :low_priority Warteschlange.

Aus der Dokumentation konnte ich nichts finden, das anzeigt, dass ich Aufträge in der Warteschlange priorisieren kann. Ich weiß, dass delayed_jobs diese Funktionalität hat, aber ich habe es in active_job nicht gefunden.

    
Ryan-Neal Mes 09.09.2015, 13:26
quelle

1 Antwort

4

Die Priorität hängt vom tatsächlichen QueueAdapter und davon ab, wie dieser Adapter konfiguriert wurde. Wenn Ihr Adapter keine Prioritäten unterstützt oder nicht richtig konfiguriert wurde, kann ActiveJob Ihnen auch nicht helfen.

Erfahren Sie mehr über Adapter von hier:

Ссылка

Das Wichtigste zum Mitnehmen ist:

  

Der wichtigste Punkt ist, dass alle Rails-Apps eine Job-Infrastruktur haben. Wir können dann Framework-Features und andere Edelsteine ​​erstellen, ohne sich um API-Unterschiede zwischen verschiedenen Job-Läufern wie Delayed Job und Resque kümmern zu müssen. Die Auswahl des Warteschlangen-Backends wird dann eher zu einem betrieblichen Problem. Und Sie können zwischen ihnen wechseln, ohne Ihre Jobs neu schreiben zu müssen.

Die Warteschlangenkonfiguration (einschließlich der Prioritäten) wird zur Verantwortung des Adapters.

Ein Beispiel für eine Warteschlangenkonfiguration finden Sie im Sidekiq-Wiki:

Ссылка

    
dimakura 09.09.2015, 13:46
quelle