[RUBY] Ich möchte eine asynchrone Verarbeitung und periodische Ausführung mit Rail durchführen !!!

Ich möchte asynchron verarbeiten

Die Verarbeitung der Aktion ist schwer und lässt den Benutzer warten. .. In einem solchen Fall schneiden wir es als asynchrone Verarbeitung aus.

Danach wird der Befehl bei laufendem Server ausgeführt.

Fügen Sie zuerst Sidekiq zum Edelstein hinzu Sidekiq ... Hört sich gut an. ..

gem 'sidekiq'

Und installieren

bundle

Wenn Sie Sidekiq starten, indem Sie den Befehl bundle exec sidekiq ausführen ...

bash-4.4$ bundle exec sidekiq
               m,
               `$b
          .ss,  $$:         .,d$
          `$$P,d$P'    .,md$P"'
           ,$$$$$b/md$$$P^'
         .d$$$$$$/$$$P'
         $$^' `"/$$$'       ____  _     _      _    _
         $:     ,$$:       / ___|(_) __| | ___| | _(_) __ _
         `b     :$$        \___ \| |/ _` |/ _ \ |/ / |/ _` |
                $$:         ___) | | (_| |  __/   <| | (_| |
                $$         |____/|_|\__,_|\___|_|\_\_|\__, |
              .d$$                                       |_|
      

Cool ... !! So konnte ich Sidekiq problemlos starten.

Bearbeiten Sie nun config / environment / development.rb, um Rails und Sidekiq zu integrieren.

config/environments/development.rb


...
  config.active_job.queue_adapter = :sidekiq
end

Die Einstellungen sind jetzt abgeschlossen.

Erstellen Sie als Nächstes einen Job mit einem Befehl.

bin/rails g job sample

Lassen Sie uns in Log ausgeben, um zu sehen, ob die asynchrone Verarbeitung abgeschlossen ist

sample_job.rb



class SampleJob < ApplicationJob
  queue_as :default

  def perform(*args)
    Sidekiq::Logging.logger.info "Erstellen Sie einen Job"
  end
end

Sie können jetzt überprüfen, ob eine asynchrone Verarbeitung durchgeführt wurde. Sie müssen es nur dort aufrufen, wo Sie eine asynchrone Verarbeitung oder eine periodische Ausführung durchführen möchten.

controller.rb


#Asynchrone Verarbeitung
SampleJob.perform_later
#Geben Sie Datum und Uhrzeit der Ausführung an(Laufen Sie morgen mittag)
SampleJob.set(wait_until: Date.tomorrow.noon).perform_later

So war eine asynchrone Verarbeitung möglich. Das war `s für heute!

Recommended Posts

Ich möchte eine asynchrone Verarbeitung und periodische Ausführung mit Rail durchführen !!!
Ich möchte die Aggregationsverarbeitung mit Spring-Batch durchführen
Ich möchte Group By-Verarbeitung mit Stream durchführen (Group-by-Count, Group-by-Sum, Group-by-Max).
Ich möchte Bildschirmübergänge mit Kotlin und Java machen!
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Ich möchte verschiedene Funktionen mit Kotlin und Java implementieren!
[Java] Ich möchte mit dem Schlüssel im Objekt eindeutig arbeiten
Ich möchte DBViewer mit Eclipse 2018-12 verwenden! !!
Ich möchte Bilder mit REST Controller von Java und Spring anzeigen!
[Active Admin] Ich möchte die Standardverarbeitung zum Erstellen und Aktualisieren anpassen
Asynchrone Verarbeitung mit regelmäßiger Ausführung in Spring Boot
Ich möchte Java8 für jeden mit Index verwenden
Ich möchte mit Firestore von Rails spielen
[Rails] Ich möchte CSS mit Webpacker laden
Ich habe versucht, CSV mit Outsystems zu lesen und auszugeben
Ich habe MySQL 5.7 mit Docker-Compose gestartet und versucht, eine Verbindung herzustellen
Ich möchte eine bestimmte Datei mit WatchService überwachen
Ich möchte Benutzer mit Devise + OmniAuth bei Rails authentifizieren
[Java] Ich möchte eine asynchrone Verarbeitung mit Promise in der Java-Testversion der Promise-ähnlichen Syntax von JavaScript schreiben.
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit spiritueller Technik zu erhöhen
Ich möchte Tomcat auf den Server bringen und die Anwendung starten
Ich möchte mit Ruby (ABC177E) eine schnelle Primfaktorisierung durchführen.
[jackson] Ich möchte die JSON-Werte "0" und "1" als Booleschen Wert erhalten
Wenn Sie explizit ODER oder UND mit Ransack schreiben möchten
[Rails] Ich habe versucht, die Stapelverarbeitung mit der Rake-Task zu implementieren
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Ich möchte manuell eine Autorisierungs-E-Mail mit Devise senden
Ich möchte den Startbefehl mit Docker-Compose an Postgres übergeben.
[Java] Ich möchte Standardeingabe und Standardausgabe mit JUnit testen
Ich möchte Zeichen konvertieren ...
Feder mit Kotorin --6 Asynchrone Verarbeitung
[Wire Mock] Ich möchte einen Stub / Mock-Server in Java einrichten und E2E-Tests durchführen.
[Spring Boot] Ich möchte meine eigene Eigenschaftendatei hinzufügen und den Wert mit env.getProperty () abrufen.
Ich möchte nur dem Poster Bearbeitungs- und Löschberechtigungen erteilen
Webpack und Webpacker, die ich Ruby-Leuten jetzt erzählen möchte
Ich möchte SONY Kopfhörer WH-1000XM4 mit LDAC mit Ubuntu 20.04 verbinden! !!
Ich möchte in der Lage sein, selbst reguläre Ausdrücke zu denken und zu schreiben. ..
Ich möchte die Generierung / Öffnung einer Protokolldatei mit log4j # FileAppender verknüpfen
Ich möchte eine Browsing-Funktion mit Ruby on Rails hinzufügen
Ich möchte den Ablauf der Spring-Verarbeitungsanforderungsparameter verstehen
Ich möchte Spring Local Time mit MySQL Time (auch Millisekunden) einfügen.
Ich möchte OutOfMemory bei der Ausgabe großer Dateien mit POI vermeiden
Ich möchte wirklich "new T ()" machen! (Und ohne Inspektionsausnahmen)
[Rails] Ich möchte beim Übergang mit link_to Daten zu Params hinzufügen
Ich möchte mit einem regulären Ausdruck zwischen Zeichenketten extrahieren
Verarbeitungsgeschwindigkeit mit und ohne statische Aufladung
Ich habe versucht, mit Java zu interagieren
Führen Sie die Verarbeitung manuell entsprechend @ConfigurationProperties durch