laravel-jobs について
laravel-jobsは、Laravel開発者向けにバックグラウンドジョブとイベントリスナーのパターンを解説するスキルです。ジョブは委譲に徹し、ドメインロジックはアクションに置く方針です。
主な機能
- 01ジョブからアクションへ処理を委譲
- 02キュー、リトライ、タイムアウトの設定
- 03ユニークジョブとジョブミドルウェア
- 04イベントリスナーの構成
- 05ジョブと同期アクションの使い分け
活用シーン
- 01バックグラウンド処理をアクションに委譲
- 02キュージョブのリトライとタイムアウト設定
- 03ユニークジョブで重複実行を防止
- 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);
}
}
ジョブはアクションに処理を委譲します。ドメインロジックはジョブではなく、アクションに記述してください。
コメント
Markdown 対応