ホームページ >バックエンド開発 >PHPチュートリアル >Laravel'の列挙統合を備えたクリーナーキューチェーン
方法で直接フォールバック値を持つ酵素の使用をサポートし、列挙のonQueue
属性に手動でアクセスすることなくサポートするようになりました。この改善により、ジョブチェーンやキューを処理する際に、よりクリーンで表現力のあるコードが作成されます。 value
use App\Enums\QueueType; // 直接使用枚举,无需 ->value Bus::chain($jobs) ->onQueue(QueueType::Background) ->dispatch();以下は、ドキュメント処理システムを実装する実際の例です。
この拡張により、タイプの安全性を維持し、コードの読みやすさを改善しながら、キューの実装が簡素化されます。
<?php namespace App\Enums; enum ProcessingQueue: string { case Immediate = 'realtime'; case Standard = 'default'; case Batch = 'batch-process'; case LowPriority = 'low-priority'; } namespace App\Services; use App\Enums\ProcessingQueue; use App\Jobs\ProcessDocument; use App\Jobs\GenerateThumbnail; use App\Jobs\ExtractMetadata; use App\Jobs\NotifyUser; use App\Models\Document; use Illuminate\Support\Facades\Bus; class DocumentProcessor { public function process(Document $document, bool $isPriority = false) { $queue = $isPriority ? ProcessingQueue::Immediate : ProcessingQueue::Standard; Bus::chain([ new ProcessDocument($document), new ExtractMetadata($document), new GenerateThumbnail($document), new NotifyUser($document->user, 'Document processing complete') ]) ->onQueue($queue) ->dispatch(); return $document; } public function batchProcess(array $documentIds) { foreach ($documentIds as $id) { $document = Document::find($id); Bus::chain([ new ProcessDocument($document), new GenerateThumbnail($document) ]) ->onQueue(ProcessingQueue::Batch) ->dispatch(); } } }
以上がLaravel&#039;の列挙統合を備えたクリーナーキューチェーンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。