Queue Workers
XetaSuite utilise les queues Laravel pour les tâches asynchrones : envoi d’emails, génération de rapports, etc.
Configuration
Section intitulée « Configuration »Driver recommandé : Redis
Section intitulée « Driver recommandé : Redis »QUEUE_CONNECTION=redisREDIS_HOST=127.0.0.1REDIS_PORT=6379Alternative : Database
Section intitulée « Alternative : Database »QUEUE_CONNECTION=databaseCréer la table de jobs :
php artisan queue:tablephp artisan migrateLancer un worker
Section intitulée « Lancer un worker »Développement
Section intitulée « Développement »php artisan queue:workProduction
Section intitulée « Production »Utilisez un process manager pour maintenir les workers actifs.
Créez /etc/supervisor/conf.d/xetasuite-worker.conf :
[program:xetasuite-worker]process_name=%(program_name)s_%(process_num)02dcommand=php /var/www/xetasuite-core/artisan queue:work redis --sleep=3 --tries=3 --max-time=3600autostart=trueautorestart=truestopasgroup=truekillasgroup=trueuser=www-datanumprocs=2redirect_stderr=truestdout_logfile=/var/www/xetasuite-core/storage/logs/worker.logstopwaitsecs=3600Activer :
sudo supervisorctl rereadsudo supervisorctl updatesudo supervisorctl start xetasuite-worker:*Créez /etc/systemd/system/xetasuite-worker.service :
[Unit]Description=XetaSuite Queue WorkerAfter=network.target
[Service]User=www-dataGroup=www-dataRestart=alwaysExecStart=/usr/bin/php /var/www/xetasuite-core/artisan queue:work redis --sleep=3 --tries=3 --max-time=3600StandardOutput=append:/var/www/xetasuite-core/storage/logs/worker.logStandardError=append:/var/www/xetasuite-core/storage/logs/worker-error.log
[Install]WantedBy=multi-user.targetActiver :
sudo systemctl enable xetasuite-workersudo systemctl start xetasuite-worker- Aller dans Servers → votre serveur
- Cliquez sur Queue dans le menu
- Configurer :
- Connection :
redis - Queue :
default - Processes :
2
- Connection :
- Cliquez sur Create Worker
Commandes utiles
Section intitulée « Commandes utiles »Surveiller les workers
Section intitulée « Surveiller les workers »php artisan queue:monitor redis:defaultVoir les jobs en échec
Section intitulée « Voir les jobs en échec »php artisan queue:failedRetenter les jobs en échec
Section intitulée « Retenter les jobs en échec »# Retenter tousphp artisan queue:retry all
# Retenter un spécifiquephp artisan queue:retry 5Purger les jobs en échec
Section intitulée « Purger les jobs en échec »php artisan queue:flushRedémarrer après déploiement
Section intitulée « Redémarrer après déploiement »php artisan queue:restartCette commande signale aux workers de redémarrer gracieusement après avoir terminé leur job en cours.
Horizon (Optionnel)
Section intitulée « Horizon (Optionnel) »Pour une gestion plus avancée des queues, envisagez d’utiliser Laravel Horizon :
composer require laravel/horizonphp artisan horizon:installphp artisan migrateLancer Horizon :
php artisan horizonAccédez au dashboard à /horizon.