【发布时间】:2018-06-18 10:46:10
【问题描述】:
也许我不了解 Laravel 队列的工作原理,或者它本身不起作用,我对 Laravel Queue/Dispatch 的预期行为是,如果从 Controller 启动调度,则调度到队列的代码应该静默执行并在后台。最终用户浏览器不必等待代码执行。
这就是我的代码所发生的情况,调度到队列的代码在执行时让浏览器“旋转...”。
这是预期的行为吗?代码:
**Controller:**
public function make_eps_certs($tbl_eps)
{
//dd(Carbon::now()->addMinutes(10))
Log::info('Dispatching maeEPSCert to Queue');
$var_result=makeEPSCerts::dispatch($tbl_eps)->onQueue('eventadmin')
->delay(10);
return redirect()->back();
}
**Job:**
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 App\partSubs;
use Log;
use Image;
class makeEPSCerts implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
protected $passdata;
public $timeout = 120;
public function __construct($passdata)
{
Log::info('Constructing makeEPSCert');
$this->passdata = $passdata;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
try
{
Log::info('Beginning makeEPSCert');
$tbl_eps=$this->passdata;
.....
【问题讨论】:
标签: laravel queue laravel-5.5 dispatch