Laravel任务队列可将耗时操作异步处理,提升性能;1. 配置QUEUE_CONNECTION=redis并启动Redis;2. 使用php artisan make:job创建任务类并在handle中编写逻辑;3. 用dispatch分发任务,支持delay延迟和onQueue指定队列;4. 运行php artisan queue:work启动监听器,建议配合Supervisor管理进程;5. 执行php artisan queue:failed-table记录失败任务,通过queue:failed查看、queue:retry重试;6. 可使用闭包任务处理简单逻辑,但需注意序列化限制。合理配置驱动、任务与监听是关键。

Laravel任务队列让你可以把耗时操作放到后台异步执行,比如发送邮件、处理图片、调用第三方接口等。这样用户请求能快速响应,提升应用性能和用户体验。核心思路是把任务“推”到队列里,再由工作进程(worker)慢慢“拉”出来处理。
1. 配置队列驱动
Laravel支持多种队列驱动:sync(同步,用于开发)、database(数据库)、redis、beanstalkd、sqs等。生产环境推荐使用redis或database。
修改 .env 文件设置默认驱动:
QUEUE_CONNECTION=redis确保已安装并启动Redis服务。若用database驱动,需生成数据表:
php artisan queue:tablephp artisan migrate
2. 创建任务类
使用Artisan命令生成任务:
php artisan make:job SendWelcomeEmail在生成的 app/Jobs/SendWelcomeEmail.php 中定义逻辑:
public function handle() { // 发送邮件逻辑 Mail::to($this->user)->send(new WelcomeMail()); }
3. 分发任务到队列
在控制器或其他地方分发任务:
dispatch(new SendWelcomeEmail($user));
也可以链式调用控制行为:
标签: 异步处理 php laravel redis app 工具 ai red talk
还木有评论哦,快来抢沙发吧~