Laravel 队列

2017-08-10  本文已影响0人  sunnyye

队列使用步骤
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
上一篇 下一篇

猜你喜欢

热点阅读