2016-11-18 74 views
0

我嘗試在作業完成後發送郵件,但我喜歡發送到隊列。但我的代碼直接發送。使用隊列方法發送郵件,但它直接發送

我它是根據Queueing Mail

Mail::to($request->user()) 
    ->cc($moreUsers) 
    ->bcc($evenMoreUsers) 
    ->queue(new OrderShipped($order)); 

那麼這個它的過程

應用程序\郵件\ CpJobFinished.php

<?php 
namespace App\Mail; 

use Illuminate\Bus\Queueable; 
use Illuminate\Mail\Mailable; 
use Illuminate\Queue\SerializesModels; 
use Illuminate\Contracts\Queue\ShouldQueue; 
... 

class CpJobFinished extends Mailable implements ShouldQueue 
{ 
    use SerializesModels, Queueable; 

    ... 
    // Some code for formating message 

在一個命令類\程序\控制檯\碼命令\ CpRsyncJobs

<?php 
namespace App\Console\Commands; 

use App\Mail\CpJobFinished; 
use Illuminate\Support\Facades\Mail; 
use Illuminate\Console\Command; 
use Illuminate\Support\Facades\Artisan; 
... 

class CpRsyncJobs extends Command 

Mail::to($email)->queue(new CpJobFinished($job)); 

但是,使用此代碼郵件它直接發送,而不是發送到隊列。當然,隊列是活動的,爲其他任務工作,

+0

如果隊列爲空,這是正常的情況下直接發送..使用隊列並不意味着它會等到你的任務完成..怎麼做它適用於其他任務? –

+0

Cron停止調試過程。未插入作業表上的任務。如果您將任何任務發送至隊列,則此任務是表格作業中的新條目。我的代碼不會將任務發送到作業。 – abkrim

回答

0

錯誤聲明類可郵寄。

當這個代碼,郵件發送到隊列。

應用程序\郵件\ CpJobFinished.php

<?php 
namespace App\Mail; 

use Illuminate\Bus\Queueable; 
use Illuminate\Mail\Mailable; 
use Illuminate\Queue\SerializesModels; 
use Illuminate\Contracts\Queue\ShouldQueue; 
... 

class CpJobFinished extends Mailable // implements ShouldQueue 
{ 
    use Queueable, SerializesModels; 
相關問題