剛學習了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下打印的數據