在 Debian 上设置 Laravel 队列(Queue),通常包含以下几个步骤:安装依赖、配置队列驱动、启动队列监听/处理进程。下面以 Redis 队列 为例(最常用),也会提到 数据库队列。
确保已安装 Laravel 所需的 PHP 版本(如 PHP 8.1/8.2):
sudo apt update
sudo apt install php php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-redis
sudo apt install redis-server
sudo systemctl enable redis
sudo systemctl start redis
测试:
redis-cli ping
# 返回 PONG
.envQUEUE_CONNECTION=redis
如果使用数据库队列:
QUEUE_CONNECTION=database
sudo apt install php-redis
config/queue.php默认已支持 Redis,无需额外修改。
php artisan queue:table
php artisan migrate
php artisan make:job SendEmailJob
示例:
public function handle()
{
// 任务逻辑
}
分发任务:
SendEmailJob::dispatch($data);
php artisan queue:work
或:
php artisan queue:listen
queue:work性能更好,生产环境推荐。
sudo apt install supervisor
sudo nano /etc/supervisor/conf.d/laravel-queue.conf
示例配置:
[program:laravel-queue]
command=php /var/www/your-project/artisan queue:work redis --sleep=3 --tries=3
directory=/var/www/your-project
autostart=true
autorestart=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/your-project/storage/logs/queue.log
路径
/var/www/your-project换成你的 Laravel 项目路径
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-queue
查看状态:
sudo supervisorctl status
php artisan queue:failed-table
php artisan migrate
php artisan queue:failed
php artisan queue:retry all
queue:work.env 中 QUEUE_CONNECTION 是否正确php artisan queue:restart
安装 Redis
配置 .env
php artisan queue:work
用 Supervisor 守护进程
如果你愿意,我可以:
直接告诉我你的 Laravel 版本 + Debian 版本 + 队列驱动 即可。