要重启 Laravel 的队列工作进程,以使代码更新,可以按照以下步骤操作:
1. 发送重启信号
Laravel 提供了一个方便的命令 queue:restart
,它可以安全地重启所有正在运行的队列工作进程。首先,使用以下命令:
1
php artisan queue:restart
这个命令会向所有正在运行的队列工作进程发送信号,指示它们在处理完当前任务后退出。
2. 启动新的队列工作进程
接下来,你需要重新启动队列工作进程。在你的项目根目录下,使用以下命令:
1
sudo -u www nohup php artisan queue:work > ./storage/logs/queue.log 2>&1 &
这会在后台启动新的队列工作进程,并将输出重定向到日志文件中。
3. 确认进程运行
你可以使用以下命令来确认新的队列进程是否已成功启动:
1
ps aux | grep queue:work
这将显示所有运行中的队列工作进程。
注意事项
- 确保你在运行
php artisan queue:restart
命令时,使用的用户与启动队列工作进程的用户相同(在你的情况下是www
用户)。 - 如果你有多个队列进程在运行,确保每个进程都能接收到重启信号,并且在所有进程完成任务后退出。
- 如果你使用了 Supervisor 等进程管理工具,可以直接使用 Supervisor 来管理队列进程的重启,而不是手动操作。