Спрощене створення пакетних завдань за допомогою вдосконалених команд Artisan у Laravel

2
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Ларавел ввів нову команду генерації завдань, яка спрощує налаштування пакетної обробки завдяки інтегрованим параметрам. Як це може заощадити ваш час та полегшити роботу? Читайте далі, щоб дізнатися про переваги автоматизованого створення пакетних завдань!

Команда генерації завдань у Laravel тепер спрощує налаштування пакетної обробки за допомогою інтегрованої опції прапорця. Це покращення усуває потребу в ручному налаштуванні, забезпечуючи, щоб розробники включали необхідні шаблони обробки пакетів з самого початку.

Традиційне налаштування пакетних завдань вимагало кількох ручних кроків після створення початкового завдання:

php artisan make:job ProcessDocument
 
use Illuminate\Bus\Batchable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;
 
class ProcessDocument implements ShouldQueue
{
    use Batchable, Queueable;
 
    public function handle(): void
    {
        if ($this->batch()->cancelled()) {
            return;
        }
 
        // Логіка обробки тут
    }
}

Покращена команда автоматично генерує повністю готові до пакетної обробки завдання:

php artisan make:job ProcessDocument --batched

Ця одна команда створює повністю налаштовані класи з необхідними рисами та обробкою скасування, інтегрованою у весь процес реалізації.

Створення комплексної системи обробки документів демонструє практичні переваги автоматизованого скелетного коду для пакетних завдань:

namespace App\Jobs;
 
use App\Models\Document;
use Illuminate\Bus\Batchable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;
 
class ProcessDocument implements ShouldQueue
{
    use Batchable, Queueable;
 
    public function __construct(
        public Document $document
    ) {}
 
    public function handle(): void
    {
        if ($this->batch()->cancelled()) {
            return;
        }
 
        $this->extractText();
        $this->generateThumbnail();
        $this->performOcr();
 
        $this->document->markAsProcessed();
    }
 
    private function extractText(): void
    {
        //
    }
 
    private function generateThumbnail(): void
    {
        //
    }
 
    private function performOcr(): void
    {
        //
    }
}
 
class DocumentController
{
    public function processBatch(Collection $documents)
    {
        $jobs = $documents->map(
            fn($document) => new ProcessDocument($document)
        );
 
        $batch = Bus::batch($jobs)
            ->name("Document Processing Batch")
            ->onQueue('document-processing')
            ->dispatch();
 
        return response()->json([
            'batch_id' => $batch->id,
            'job_count' => $batch->totalJobs
        ]);
    }
}

Автоматизоване налаштування гарантує наявність критичних перевірок скасування пакетів з моменту ініціалізації проєкту, запобігаючи виникненню непослідовних станів даних та неповним сценаріям обробки, які можуть виникнути через недогляд у ручній реалізації.

Популярні

Logomark Logotype

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом

Logomark Logotype

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту

Logomark Logotype

Nuxt 3 + Laravel Sanctum: Просте та надійне рішення для автентифікації вашого SPA та API

У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту