Asyn c очередь в Laravel 5,8 - PullRequest
       88

Asyn c очередь в Laravel 5,8

0 голосов
/ 01 апреля 2020

Я создаю приложение для создания каталогов. Данные, которые мне нужно загрузить, часто превышают 50 МБ, поэтому, чтобы не мешать работе пользователя, я пытался использовать очередь в Laravel.

У меня есть класс задания:

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Http\Request;


use PDF;
use App\Jobs\ProcessCatalog;

class ProcessCatalog implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $id;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($id)
    {
        $this->id=$id;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
             //code which generate catalogs
    }
}

I попытался запустить это с:

public function generateC() {

    ProcessCatalog::dispatch(1);

return 'it works'; 
}

и все работает нормально, когда очередь syn c, но когда я QUEUE_DRIVER = syn c в QUEUE_DRIVER = база данных все, кажется, работает, но каталог никогда не генерируется .. .

Мне нужно запустить очередь asyn c? Каков наилучший способ сделать это?

1 Ответ

1 голос
/ 02 апреля 2020

В Laravel драйвер очереди базы данных, вы должны сначала перенести таблицу очереди:

php artisan queue:table

php artisan migrate

И затем вы должны запустить работника очереди:

php artisan queue:work
...