Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
devweb:laravel:queue [29-07-2014 21:46] edmc73 |
devweb:laravel:queue [14-06-2017 23:20] (Version actuelle) edmc73 |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== File d' | ====== File d' | ||
+ | La docs => https:// | ||
+ | |||
+ | Installer **supervisord** | ||
+ | |||
+ | Créer un fichier de config | ||
+ | < | ||
+ | [program: | ||
+ | process_name=%(program_name)s_%(process_num)02d | ||
+ | command=php / | ||
+ | autostart=true | ||
+ | autorestart=true | ||
+ | user=www-data | ||
+ | numprocs=8 | ||
+ | redirect_stderr=true | ||
+ | stdout_logfile=/ | ||
+ | </ | ||
+ | |||
+ | Les options : | ||
+ | * sleep : temps de pause en seconde entre chaque job | ||
+ | * tries : nombre d' | ||
+ | * timeout : temps maxi en seconde qu'un job peut durer | ||
+ | * memory : limite en Mo de la ram utilisé par le job | ||
+ | * delay : délai avant de passer un job échoué dans la failed job list | ||
+ | |||
+ | **php artisan queue: | ||
+ | |||
+ | Pour recharger laravel dans le queue: | ||
+ | * avec supervisor | ||
+ | supervisorctl restart laravel-worker: | ||
+ | * avec artisan | ||
+ | php artisan queue: | ||
+ | |||
+ | Pour executer un job, pour des tests, on peut lancer la commande | ||
+ | php artisan queue:work --once | ||
+ | |||
+ | Une alternative : **php artisan queue: | ||
+ | |||
+ | ===== Commande utile pour supervisor ===== | ||
+ | Supervisor a un shell | ||
+ | < | ||
+ | # supervisorctl | ||
+ | supervisor> | ||
+ | |||
+ | default commands (type help < | ||
+ | ===================================== | ||
+ | add clear fg open quit remove | ||
+ | avail exit | ||
+ | |||
+ | supervisor> | ||
+ | </ | ||
+ | mais on peut l' | ||
+ | |||
+ | Si vous ajoutez un fichier de config, les commandes suivantes montre les nouveaux worker et les activent, puis les démarrent | ||
+ | supervisorctl reread | ||
+ | supervisorctl update | ||
+ | supervisorctl start laravel-worker: | ||
+ | |||
+ | Si vous modifiez un fichier de config (sans changer le nom du program), la commande suivante restart le worker avec la nouvelle config | ||
+ | supervisorctl update | ||
+ | |||
+ | Pour tout stopper | ||
+ | supervisorctl stop all | ||
+ | ou un worker | ||
+ | supervisorctl stop laravel-worker: | ||
+ | Pour tout restarter | ||
+ | supervisorctl restart all | ||
+ | ou un worker | ||
+ | supervisorctl restart laravel-worker: | ||
+ | | ||
+ | ===== Config laravel ===== | ||
+ | Dans config/ | ||
+ | ' | ||
+ | Vérifiez aussi dans votre fichier .env | ||
+ | QUEUE_DRIVER=database | ||
+ | |||
+ | puis | ||
+ | < | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ], | ||
+ | </ | ||
+ | Si vous mettez un nom de queue spécifique, | ||
+ | < | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ], | ||
+ | </ | ||
+ | soit vous le spécifiez dans la commande artisan | ||
+ | command=php / | ||
+ | |||
+ | Le **retry_after** est le nombre de seconde avant de relancer un job qui génère une exception | ||
+ | |||
+ | |||
+ | ===== Les failed ===== | ||
+ | |||
+ | < | ||
+ | $ php artisan queue: | ||
+ | +----+------------+---------+--------------------------------+---------------------+ | ||
+ | | ID | Connection | Queue | Class | Failed At | | ||
+ | +----+------------+---------+--------------------------------+---------------------+ | ||
+ | | 3 | database | ||
+ | | 2 | database | ||
+ | | 1 | database | ||
+ | +----+------------+---------+--------------------------------+---------------------+ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | $ php artisan queue:retry 1 | ||
+ | The failed job [1] has been pushed back onto the queue! | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | $ php artisan queue: | ||
+ | Failed job deleted successfully! | ||
+ | </ | ||
+ | |||
+ | ===== Vieux systeme avec Laravel 4 ===== | ||
Tuto en anglais => http:// | Tuto en anglais => http:// | ||