Wenn ich mir den folgenden Job anschaue, würde ich annehmen, dass der Job in einer Warteschlange low_priority
ausgeführt wird.
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.
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:
Tags und Links ruby ruby-on-rails rails-activejob