温馨提示×

debian下laravel如何队列

小樊
46
2026-09-23 13:16:32
栏目: 智能运维

在 Debian 下使用 Laravel 队列,一般包括安装环境、配置队列、启动队列 worker几个步骤。下面按常见场景(Redis / Database 队列)给你一个完整说明。


一、准备环境(Debian)

1. 安装 PHP 及必要扩展

sudo apt update
sudo apt install php php-cli php-mbstring php-xml php-curl php-zip php-bcmath php-gd

如果用 Redis 队列:

sudo apt install redis-server
sudo apt install php-redis

2. 安装 Composer

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

二、Laravel 队列配置

1. 修改 .env

QUEUE_CONNECTION=redis

或(数据库队列):

QUEUE_CONNECTION=database

三、使用 Database 队列(最简单)

1. 生成队列表

php artisan queue:table
php artisan migrate

2. 创建 Job

php artisan make:job SendEmail

app/Jobs/SendEmail.phphandle() 中写逻辑。

3. 派发任务

SendEmail::dispatch($user);

四、使用 Redis 队列(推荐)

1. 启动 Redis

sudo systemctl enable redis-server
sudo systemctl start redis-server

2. 安装 Redis 依赖

composer require predis/predis

五、启动队列 Worker(关键)

前台运行(测试)

php artisan queue:work

后台运行(生产)

php artisan queue:work --daemon

六、Debian 下用 Supervisor 管理队列(推荐)

1. 安装 Supervisor

sudo apt install supervisor

2. 创建配置

sudo nano /etc/supervisor/conf.d/laravel-worker.conf

内容示例:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/laravel/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/laravel/storage/logs/worker.log

3. 启动

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*

七、常用命令

php artisan queue:failed        # 查看失败任务
php artisan queue:retry all     # 重试
php artisan queue:flush         # 清空失败
php artisan queue:restart       # 重启 worker

八、常见问题

  • 队列不执行:检查 QUEUE_CONNECTION
  • 代码不生效:执行 queue:restart
  • 权限问题:确保 storage 可写

如果你愿意,可以告诉我:

  • Laravel 版本
  • 使用 Redis 还是 Database
  • 是否生产环境

我可以直接给你一份可用的 Debian 配置示例

0