Laravel 队列

队列使用步骤
1.迁移队列需要的数据表
2.编写任务类
3.推送任务到队列
4.运行队列监听器
5.处理失败的任务

使用
1.配置文件 Config/queue.php

2.迁移队列需要的数据表
php artisan queue:table 实现迁移: php artisan migrate

3.编写任务类
php artisan make:job SendSms

<?php

namespace App\Jobs;

use App\Jobs\Job;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\Storage;
use App\Models\Sms;

class SendSms extends Job implements ShouldQueue
{
    use InteractsWithQueue, SerializesModels;

    public $sms = [];

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct(array $sms)
    {
        //
        $this->sms = $sms;
    }

    /**
     * Execute the job.
     *
     * @param array $sms
     */

    public function handle()
    {
     //发送
    }
}

4.推送任务到队列

新建控制器

public function sendSms()
{
         dispatch(new SendSms('xxxxx'));
}

演示执行,访问路由。。。
查看数据表jobs。。。。

5.执行队列,运行队里监听器

php artisan queue:listen

6.处理失败任务
建立迁移文件,生成失败时需要的表

php artisan queue:failed-table

php artisan migrate

访问路由,如果队列任务执行失败,failed-table表中出现失败的任务

查看哪些队列任务失败

php artisan queue:failed

手动执行失败的队列任务,将失败的任务放入队列中

php artisan queue:retry 1(1代表需要执行任务的id,如果是all  表示执行全部)

删除失败队列的任务 以及删除全部

php artisan queue:forget 1(1代表需要执行任务的id)

php artisan queue:flush
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 队列 简介 laravel 的队列服务对各种不同的后台队列服务提供了统一的 API。队列允许你延迟执行消耗时间的任...
    Dearmadman阅读 20,912评论 7 26
  • 使用场景:处理一些耗时或者高并发的操作,把操作放到队列中异步执行,可以有效缓解系统压力、提高系 统响应速度和负载能...
    Uzero阅读 3,218评论 0 0
  • 问题 公司项目使用Laravel的开发的两个项目在同一个测试服务器部署,公用同一个redis。在使用laravel...
    Dr點燃阅读 5,529评论 2 9
  • 什么是队列,队列用来干什么的这里不再介绍! 这里使用数据库作为驱动,php artisan queue:table...
    小小小胡阅读 3,051评论 0 0
  • 步骤: 驱动选择在.env环境中修改QUEUE_DRIVER=database来实现 定义任务 分发任务 启动队列...
    小慕先森阅读 2,767评论 0 0

友情链接更多精彩内容