运行队列

# 运行队列处理程序php artisan queue:work# 运行队列处理程序php artisan queue:listen# 指定工作处理器应用哪个连贯,连贯名在 config/queue.php 中定义php artisan queue:work redis# 指定工作处理器应用的连贯和解决的队列名称php artisan queue:work redis --queue=emails# 只解决队列中的下一个工作php artisan queue:work --once# 指定工作处理器解决了多少个工作后敞开php artisan queue:work --max-jobs=1000# 指定工作处理器解决所有工作后敞开php artisan queue:work --stop-when-empty# 指定工作处理器解决了多少秒后敞开php artisan queue:work --max-time=3600# 指定队列解决的优先级php artisan queue:work --queue=high,low# 优雅地重新启动所有的 worker,需配合Supervisor来主动重启php artisan queue:restart# 指定队列执行的超时工夫php artisan queue:work --timeout=60# 设置队列为空时的休眠工夫php artisan queue:work --sleep=3

queue:workqueue:listen 区别

  • queue:listen 一旦命令启动,将始终放弃运行,直到它被手动进行或敞开终端。当新的申请到来时,会从新加载整个框架,所以更新代码后无需手动重新启动队列处理器即可失效。但性能不如 queue:work 好。
  • queue:work 一旦命令启动,将始终放弃运行,直到它被手动进行或敞开终端。当新的申请到来时,不从新加载整个框架,而是间接执行程序。更新代码后,须要重新启动队列处理器,代码才失效。

queue:work 所有参数阐明

protected $signature = 'queue:work                        {connection? : The name of the queue connection to work}                        {--queue= : The names of the queues to work}                        {--daemon : Run the worker in daemon mode (不举荐应用)}                        {--once : Only process the next job on the queue}                        {--stop-when-empty : Stop when the queue is empty}                        {--delay=0 : The number of seconds to delay failed jobs}                        {--force : Force the worker to run even in maintenance mode}                        {--memory=128 : The memory limit in megabytes}                        {--sleep=3 : Number of seconds to sleep when no job is available}                        {--timeout=60 : The number of seconds a child process can run}                        {--tries=1 : Number of times to attempt a job before logging it failed}';