2 votes

Effacer le cache de la file d'attente Laravel sans redémarrer

Dans mon application, chaque client a une sorte de classe complexe dans laquelle nous effectuons des recherches et des remplacements pour ce client spécifique. Je lance des travailleurs de file d'attente pour exécuter une synchronisation quotidienne avec eBay pour chaque client afin d'effectuer une sorte de recherche et de remplacement.

Le problème est que Laravel queues met en cache le code pendant un bon moment et si je veux aller changer un fichier de classe client (ce qui arrive fréquemment), je devrai redémarrer les travailleurs de la file d'attente (ce qui pourrait arrêter un travail en cours que je n'ai pas l'intention d'arrêter).

Ma question est donc la suivante: comment forcer Laravel Queue à relire le nouveau code sans redémarrer les travailleurs?

1voto

Adam Winnipass Points 341

Ouvrez un terminal supplémentaire et utilisez la commande artisan

php artisan queue:restart

0voto

Toskan Points 1231

Cette commande instruira tous les travailleurs de file d'attente à "mourir" de manière gracieuse après avoir terminé le traitement de leur tâche actuelle afin qu'aucune tâche en cours ne soit perdue.

Vous pouvez redémarrer gracieusement tous les travailleurs en émettant la commande queue:restart :

php artisan queue:restart

source : https://laravel.com/docs/5.8/queues#running-the-queue-worker

ainsi, la chaîne complète de commandes devrait être (peut-être) la suivante :

composer dump-autoload
php artisan optimize
php artisan clear-compiled
php artisan cache:clear
php artisan view:clear
php artisan route:cache
php artisan queue:restart

J'ai omis la commande de cache de configuration intentionnellement car je ne veux pas l'exécuter initialement. L'exécuter commencera en fait à mettre en cache votre fichier de configuration à ce que je sache, donc nous ne voulons pas cela.

Je réponds car je veux enregistrer ma propre réponse dans Evernote, pour ne plus jamais avoir à traiter cette absurdité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X