Sidekiq Gem für Hintergrundjobs in Rails

Wenn Sie mit vielen Datensätzen arbeiten und der Vorgang viel Zeit in Anspruch nimmt, z. B. das Importieren oder Exportieren von Tausenden von Datensätzen oder das Synchronisieren weiterer Datensätze, ist es besser, ihn zum Hintergrundjob hinzuzufügen.

Sidekiq ist das Juwel, das für diesen Zweck verwendet werden kann. Sidekiq verwendet mehrere Threads. Der Standardthread in sidekiq ist "Standard".

*
Für Sidekiq müssen wir den Redis-Server installieren.

„sudo apt-get install redis“ Installieren und starten Sie den Redis-Server für Ihre Konsole.

* Fügen Sie das Sidekiq-Gem hinzu und führen Sie die Bundle-Installation aus.

Edelstein 'sidekiq'

* Wir müssen die Worker-Klasse im Verzeichnis app/workers generieren und die Dateien im Verzeichnis app/workers werden automatisch geladen.
Beispiel: /app/workers/test_worker.rb

Klasse TestWorker include Sidekiq::Worker def perform end end

Wir müssen die Sidekiq::Worker- und Perform-Methode einbinden. Die Perform-Methode innerhalb des Workers wird automatisch aufgerufen und der Code, der im Hintergrund ausgeführt werden muss, wird hier geschrieben.

Wir können diese Worker-Klasse für die Controller-Methode wie folgt aufrufen:

TestWorker.perform_async (wenn Sie die Argumente übergeben möchten, können Sie diese hier übergeben).
* Als nächstes müssen wir den Sidekiq-Server starten

bundle exec sidekiq

* Wenn ein Job aufgrund eines Fehlers fehlschlägt, versucht Sidekiq diesen Job erneut. Wir können den erneuten Versuch vermeiden, indem wir Sidekiq-Optionen angeben.

sidekiq_options-Wiederholung: falsch


*
In sidekiq können wir den Job nach einiger Zeit planen. Hierfür verwenden wir anstelle von perform_async perform_in.
Beispiel: PygmentsWorker.perform_in(1.hour, @snippet.id)

* Wir können die Warteschlange in Sidekiq priorisieren, wenn wir beispielsweise mehrere Worker in unserer Anwendung haben und wenn wir möchten, dass ein bestimmter Worker zuerst verarbeitet wird, weisen wir den Worker der spezifischen Warteschlange zu.
EX: sidekiq_options-Warteschlange: „hoch“

* Wir können die Warteschlange verarbeiten, indem wir den Sidekiq-Server mit der Option -q ausführen.
bundle exec sidekiq -q high,5 default,1

RailsCarma hat angeboten ROR-Entwicklungsdienstleistungen seit über 8 Jahren. Unsere Entwickler sind mit der Ausführung aller Arten von Aufgaben bestens vertraut Ruby on Rails-Anwendungsentwicklung Projekte und Erweiterung der Funktionen Ihrer vorhandenen Rails-Anwendungen. Kontaktieren Sie uns, um mehr über unsere Entwicklungskompetenzen und die Projekte zu erfahren, an denen wir gearbeitet haben.

Abonnieren Sie die neuesten Updates

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEGerman