mcpField
L
laravel-jobs

laravel-jobs

github.com/leeovery開発1551 回インストール2 週間前に更新
リポジトリ

laravel-jobs について

laravel-jobsは、Laravel開発者向けにバックグラウンドジョブとイベントリスナーのパターンを解説するスキルです。ジョブは委譲に徹し、ドメインロジックはアクションに置く方針です。

主な機能

  1. 01ジョブからアクションへ処理を委譲
  2. 02キュー、リトライ、タイムアウトの設定
  3. 03ユニークジョブとジョブミドルウェア
  4. 04イベントリスナーの構成
  5. 05ジョブと同期アクションの使い分け

活用シーン

  1. 01バックグラウンド処理をアクションに委譲
  2. 02キュージョブのリトライとタイムアウト設定
  3. 03ユニークジョブで重複実行を防止
  4. 04タスクにジョブと同期アクションのどちらを使うか判断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/leeovery/agentic-skills --skill laravel-jobs

インストール後、Claude Code で/laravel-jobsを入力して読み込まれたか確認します。

同梱ファイルreferences/jobs-listeners.md

詳細

Laravel ジョブ

バックグラウンドジョブとイベントリスナー:アクションへの薄い委譲レイヤーです。

基本概念

jobs-listeners.md - ジョブのパターン:

  • 薄い委譲レイヤーとしてのジョブ
  • キューの設定
  • 再試行のロジックとタイムアウト
  • 一意のジョブ
  • ジョブミドルウェア
  • イベントリスナー
  • ジョブと同期アクションを使い分けるタイミング

パターン

final class ProcessOrderJob implements ShouldQueue
{
    use Dispatchable, Queueable;

    public function __construct(
        public readonly int $orderId,
    ) {}

    public function handle(ProcessOrderAction $action): void
    {
        $order = Order::findOrFail($this->orderId);

        $action($order);
    }

    public function middleware(): array
    {
        return [new WithoutOverlapping($this->orderId)];
    }
}

// Listener
final class SendOrderConfirmationListener
{
    public function handle(OrderPlaced $event): void
    {
        SendOrderConfirmationJob::dispatch($event->order->id);
    }
}

ジョブはアクションに処理を委譲します。ドメインロジックはジョブではなく、アクションに記述してください。

コメント