簡體   English   中英

Laravel 5.8 中的異步隊列

[英]Async queue in Laravel 5.8

我正在構建一個應用程序來生成目錄。 我需要加載的數據通常超過 50mb,所以為了不破壞用戶體驗,我嘗試在 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
    }
}

我試圖用以下方法運行它:

public function generateC() {

    ProcessCatalog::dispatch(1);

return 'it works'; 
}

當隊列同步時一切正常,但是當我 QUEUE_DRIVER=sync 到 QUEUE_DRIVER=database 時,一切似乎都有效,但從未生成目錄...

我需要運行隊列異步嗎? 最好的方法是什么?

到 Laravel 數據庫隊列驅動,必須先遷移隊列表:

php artisan queue:table

php artisan migrate

然后您必須運行隊列工作器:

php artisan queue:work

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM