2017-10-10 6 views
0

Ich habe eine RoR-App mit einem Modell, das eine Bereitstellung für Remote-APIs durchführen muss. Aber in zwei von ihnen muss ich viele HTTP-Anforderungen bereitstellen und ich verwende ActiveJob für diese Aufgabe.ActiveJobs-Warteschlange

Das Problem ist, was ich einen Erstellungsauftrag für diese HTTP-Anforderung pflegen muss, aber ActiveJob nicht.

Wie verarbeitet man viele asynchrone Aufgaben mit ActiveJob in einer bestimmten Reihenfolge?

Antwort

1

Eine Möglichkeit ist es, diese Arbeitsplätze auf einer speziellen Warteschlange auf dieser Warteschlange

class MyHttpJob < ApplicationJob 
    queue_as :serial_creation 
    #.... 
end 

und haben nur einen Arbeiter zu setzen. Keine Parallelität => automatische Serialisierung. Natürlich hat dies ernsthafte Leistungseinschränkungen. Aber wenn Ihr einziger Arbeiter den Verkehr bewältigen kann, ist es ein guter, einfacher Weg.

+0

Kann eine gültige Lösung sein. Danke –