首页 如何安全地重启 Laravel 任务队列让应用代码更新
文章
取消

如何安全地重启 Laravel 任务队列让应用代码更新

要重启 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 来管理队列进程的重启,而不是手动操作。
本文由作者按照 CC BY 4.0 进行授权