在 Debian 上管理 Laravel 队列,通常包含安装运行环境、配置队列、启动 worker、进程守护(常驻)、监控与维护几个部分。下面按“可落地方案”给你一个完整思路。
已安装
安装常用扩展
sudo apt update
sudo apt install php-cli php-mbstring php-xml php-curl php-zip php-mysql php-redis -y
.envQUEUE_CONNECTION=redis
# 或 database / beanstalkd
如果是 database:
php artisan queue:table
php artisan migrate
如果是 redis,确保:
sudo apt install redis-server
sudo systemctl enable redis-server
php artisan queue:work
或(推荐生产用):
php artisan queue:work --queue=high,default --tries=3
⚠️ 这样关闭终端就会停,仅适合测试。
sudo apt install supervisor -y
sudo nano /etc/supervisor/conf.d/laravel-worker.conf
示例:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/your-project/artisan queue:work --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/your-project/storage/logs/worker.log
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
supervisorctl status
supervisorctl restart laravel-worker:*
✅ 优点:自动重启、支持多进程、稳定
sudo nano /etc/systemd/system/laravel-queue.service
[Unit]
Description=Laravel Queue Worker
After=network.target
[Service]
User=www-data
WorkingDirectory=/var/www/your-project
ExecStart=/usr/bin/php artisan queue:work --tries=3
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reexec
sudo systemctl enable laravel-queue
sudo systemctl start laravel-queue
✅ 优点:Debian 原生,不用额外软件
只适合轻量任务:
* * * * * php /var/www/your-project/artisan schedule:run
| 命令 | 说明 |
|---|---|
queue:work |
常驻,性能好(推荐) |
queue:listen |
每次重启进程,慢 |
✅ 生产环境用 queue:work
php artisan queue:restart
php artisan queue:failed
php artisan queue:retry all
如果你愿意,我可以:
你现在是 测试环境还是生产服务器?