Le traitement de l'action est lourd et fait attendre l'utilisateur. .. Dans un tel cas, supprimons-le en tant que traitement asynchrone.
Après cela, la commande sera exécutée avec le serveur en cours d'exécution.
Ajoutez d'abord Sidekiq à la gemme Sidekiq ... ça sonne bien. ..
gem 'sidekiq'
Et installez
bundle
Lorsque vous démarrez Sidekiq en exécutant la commande bundle exec sidekiq ...
bash-4.4$ bundle exec sidekiq
m,
`$b
.ss, $$: .,d$
`$$P,d$P' .,md$P"'
,$$$$$b/md$$$P^'
.d$$$$$$/$$$P'
$$^' `"/$$$' ____ _ _ _ _
$: ,$$: / ___|(_) __| | ___| | _(_) __ _
`b :$$ \___ \| |/ _` |/ _ \ |/ / |/ _` |
$$: ___) | | (_| | __/ <| | (_| |
$$ |____/|_|\__,_|\___|_|\_\_|\__, |
.d$$ |_|
Cool ... !! J'ai donc pu démarrer Sidekiq facilement.
Modifiez maintenant config / environnements / development.rb pour intégrer Rails et Sidekiq.
config/environments/development.rb
...
config.active_job.queue_adapter = :sidekiq
end
Les réglages sont maintenant terminés.
Ensuite, créez un travail avec une commande.
bin/rails g job sample
Sortons dans le journal pour voir si le traitement asynchrone est effectué
sample_job.rb
class SampleJob < ApplicationJob
queue_as :default
def perform(*args)
Sidekiq::Logging.logger.info "Créer un emploi"
end
end
Vous pouvez maintenant vérifier si un traitement asynchrone a été effectué. Tout ce que vous avez à faire est de l'appeler là où vous souhaitez effectuer un traitement asynchrone ou une exécution périodique.
controller.rb
#Traitement asynchrone
SampleJob.perform_later
#Spécifiez la date et l'heure d'exécution(Courir à midi demain)
SampleJob.set(wait_until: Date.tomorrow.noon).perform_later
Le traitement asynchrone était possible de cette manière. C'est tout pour aujourd'hui!
Recommended Posts