Rumah >pembangunan bahagian belakang >tutorial php >Rantai giliran bersih dengan integrasi enum Laravel ' s
, tanpa mengakses atribut onQueue
secara manual penghitungan. Peningkatan ini mewujudkan kod yang lebih bersih dan lebih ekspresif apabila mengendalikan rantai kerja dan beratur. value
use App\Enums\QueueType; // 直接使用枚举,无需 ->value Bus::chain($jobs) ->onQueue(QueueType::Background) ->dispatch();Berikut adalah contoh sebenar pelaksanaan sistem pemprosesan dokumen:
<?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(); } } }Peningkatan ini memudahkan pelaksanaan giliran sambil mengekalkan keselamatan jenis dan meningkatkan kebolehbacaan kod.
Atas ialah kandungan terperinci Rantai giliran bersih dengan integrasi enum Laravel ' s. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!