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