Laravel 队列 --- database 驱动(今天刚学习了队列,记录下笔记)

刚学习了laravel队列,把笔记记一下。

1.第一步配置(.env)

QUEUE_CONNECTION=database

2.database 驱动设置

第一步:生成 jobs 数据迁移表

php artisan queue:table

效果如下:
Laravel 队列 --- database 驱动(今天刚学习了队列,记录下笔记)_第1张图片
第二步: 创建jobs表,执行迁移命令

php artisan migrate

效果如下:
Laravel 队列 --- database 驱动(今天刚学习了队列,记录下笔记)_第2张图片

3.模拟数据

第一步: 进入 thinker

php artisan thinker

第二步:创建数据 (thinker命令)

factory(App\User::class,10)->create();
// 创建10个用户

打开users表 就能看到 创建的10 个新用户

4.创建 Jobs及编写

第一步:创建

php artisan make:job Email

此时能在 app 目录下生成个 Jobs 文件夹 及我们创建的 Email.php文件

效果如下:

Laravel 队列 --- database 驱动(今天刚学习了队列,记录下笔记)_第3张图片
第二步:编写Email.php

user = $user;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        //打印日记
        Log::info('发送的邮件是:'.$this->user->email);
    }
}

6. 创建控制器,分发任务

第一步:创建Usercontroller控制器

php artisan make:controller UserController

第二步:编写Usercontroller

get();

        foreach ($users as $user){
            $this->dispatch(new Email($user));
        }

        return 'Done';
    }
}

7.编写路由 添加队列

1.web.php

Route::get('/', 'UserController@store');

2.访问路由后 jobs 表将会生成 符合条件的用户
3.执行任务

php artisan queue:work

执行完命令后 jobs 刚才添加的数据 就没了
4.打开日志文件
如图:
Laravel 队列 --- database 驱动(今天刚学习了队列,记录下笔记)_第4张图片
会发现我们在 Email.php handle下打印的数据

完结

你可能感兴趣的:(php,laravel,model,databaes)