Laravel 内含一个 Artisan 命令,它将推送到队列的工作拉来下执行,你可以使用 queue:listen 命令,来执行这件常驻任务:
开始队列监听
php artisan queue:listen
你也可以指定特定队列连接让监听器使用:
php artisan queue:listen connection
注意当这个任务开始时,这将会一直持续执行到他被手动停止,你也可以使用一个处理监控如 Supervisor 来确保这个队列监听不会停止执行。
你也可以在 listen 命令中使用逗号分隔的队列连接,来设置不同队列连接的优先层级:
php artisan queue:listen --queue=high,low
在这个范列中,总是会优先处理 high-connection 中的工作,然后才处理 low-connection。
指定工作超时参数
你也可以设置给每个工作允许执行的秒数:
php artisan queue:listen --timeout=60
指定队列休息时间
此外,你也可以指定让监听器在拉取新工作时要等待几秒:
php artisan queue:listen --sleep=5
注意队列只会在工作时休息,假如有许多可执行的工作,队列会持续的处理工作而不会休息
处理队列上的第一个工作
当你只想处理队列上的一个工作你可以使用 queue:work Artisan 命令:
php artisan queue:work