刚学习了laravel队列,把笔记记一下。php
QUEUE_CONNECTION=database
第一步:生成 jobs 数据迁移表laravel
php artisan queue:table
效果以下:
第二步: 建立jobs表,执行迁移命令web
php artisan migrate
效果以下:app
第一步: 进入 thinker学习
php artisan thinker
第二步:建立数据 (thinker命令)this
factory(App\User::class,10)->create(); // 建立10个用户
打开users表 就能看到 建立的10 个新用户spa
第一步:建立日志
php artisan make:job Email
此时能在 app 目录下生成个 Jobs 文件夹 及咱们建立的 Email.php文件code
效果以下:blog
第二步:编写Email.php
<?php namespace App\Jobs; use App\User; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Support\Facades\Log; class Email implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; //定义 public $user; /** * Create a new job instance. * * * @return void */ public function __construct(User $user) { //赋值 $this->user = $user; } /** * Execute the job. * * @return void */ public function handle() { //打印日记 Log::info('发送的邮件是:'.$this->user->email); } }
第一步:建立Usercontroller控制器
php artisan make:controller UserController
第二步:编写Usercontroller
<?php namespace App\Http\Controllers; use App\Jobs\Email; use App\Jobs\SendReminderEmail; use App\User; class UserController extends Controller { // public function store() { $users = User::where('id','<',6)->get(); foreach ($users as $user){ $this->dispatch(new Email($user)); } return 'Done'; } }
1.web.php
Route::get('/', 'UserController@store');
2.访问路由后 jobs 表将会生成 符合条件的用户
3.执行任务
php artisan queue:work
执行完命令后 jobs 刚才添加的数据 就没了
4.打开日志文件
如图:
会发现咱们在 Email.php handle下打印的数据