前言
根据文档,我本地创建了一个laravel版本为7+ 的项目,接下来,就来创建简单的队列,并实现队列的执行
第一步: 连接数据库
使用Homestead开发项目,既然它什么都有,那我们就直接使用它的数据库,使用Mysql连接成功后,为此次学习创建一个数据库,名字为 myself ,配置项目中数据库连接信息
第二步: 创建Job任务
根据文档,因为我的项目是空的,所以我需要按照命令,创建对应的表,控制器,Job;
- 创建对应的表
php artisan queue:table
php artisan migrate
会发现表中多了几个表: Users,mogrations,jobs,failed_jobs
- 创建对应的控制器
php artisan make:controller UsersController
- 创建对应的Job
php artisan make:job SendEmail
- 产生队列
$users = \App\User::where('id','>',24)->get();
foreach ($users as $user){
$this->dispatch(new SendEmail($user));
info($user->email);
}
执行代码,你会发现Jobs中,多出了一些待执行的Job任务
-
执行队列
php artisan queue:work
该命令会执行队列,执行Jobs表中所有的任务,要是执行失败,会自动入库failed_jobs表的,智能呀。。。。
写在最后
- 这个只是简单的database作为驱动执行队列,其实常用的还是Rdis作为驱动;
- 要是Job中有逻辑调整,记得重启队列,命令为 **php artisan queue:restart **
php artisan : 查看常用的artisan命令