Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| devweb:laravel:queue [29-07-2014 19:46] – edmc73 | devweb:laravel:queue [14-06-2017 21: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:// | ||