PHPフレームワーク Laravel実践開発 4章 メモ

Chapter 4 キュー・ジョブ・イベント・スケジューラ

4-1 キューとジョブ

  • キューの概要
  • ジョブ作成
    • artisan make:job MyJob --> app\Jobs\MyJob.php
  • ジョブプロバイダ作成
    • artisan make:provider MyJobProvider --> app\Providers\MyJobProvider.php
  • MyJob をディスパッチ
  • ジョブでデータアクセス
  • ジョブを非同期で実行
    • キュー用テーブル生成
      • artisan queue:table
    • マイグレーション実施
      • artisan migrate --path=database/migrations/2020_05_30_084651_create_jobs_table.php
    • 実行失敗時テーブル生成 --> 作成済だった
    • .env変更
      • QUEUE_CONNECTION=database
      • QUEUE_DRIVER=database
    • ワーカ実行
      • artisan queue:work
    • ディスパッチ呼び出し方法を変更
    • キューテーブル内容を確認
    • 名前付きキュー実行
    • クロージャによるJobディスパッチ

4-2 イベントの利用

  • イベント概要
  • イベント生成
    • app\EventServiceProvider.php に、PersonEventListener を記述
    • artisan event:generate --> イベントとイベントリスナーのソースが生成される
  • Listener によるハンドリング
  • Subscribe によるハンドリング
  • EventDiscovery によるハンドリング
  • キューを利用したイベント発行

4-3 タスクとスケジューラ

  • スケジューラ
  • app\Console\Kernel.php に記述する
  • 起動: artisan schedule:run
  • exec() -- コマンドラインのコマンドを実行
  • commadn() -- artisan コマンド実行
  • call() -- クロージャ、Invokableなクラス を実行
  • job() -- Job を実行