[英]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.