2017-02-21 149 views
0

我已經聯繫Redis與Laravel排隊電子郵件,一切都很好......但在開發環境中,我使用mailtrap.io(免費版)。減慢Laravel工作人員

而問題是,mailtrap允許接收每秒只有2個電子郵件,所以我從來沒有得到所有排隊的電子郵件,因爲Redis的發送電子郵件,像瘋了似的......也許10元/ s的

有沒有以某種方式減慢隊列速度,以便每秒發送最多2封郵件?

+1

LS也許像'的Mail :: getSwiftMailer() - > registerPlugin(新\ Swift_Plugins_AntiFloodPlugin(2,1));'的第一個參數是最大數量的電子郵件到每個連接發送,第二個參數是等待時間,以秒爲單位,在連接之間。如需更多幫助[請檢查此](http://www.camroncade.com/limit-the-number-of-messages-sent-on-one-smtp-connection-laravel-5/) – KuKeC

+0

我正在使用Laravel - 通知發送郵件... – lewis4u

+0

你能幫我一下,在哪裏調用這個插件? – lewis4u

回答

1

是的,它是一個解決方案,他們是所謂的工作:) 您可以創建一個文件專門發送郵件的作業文件夾和一類這樣的

class SendPushNotification extends Job implements ShouldQueue 
{ 
    use InteractsWithQueue, SerializesModels; 

    protected $pushNotification; 

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

    /** 
    * Execute the job. 
    * 
    * @return void 
    */ 
    public function handle() 
    { 
     $this->pushNotification->send(); 
    } 
} 

,然後調用類的控制器

$this->dispatch(new SendPushNotification($pushNotification))->delay(1);

延遲是你可以創建一個構造器陣列秒收到兩封電子郵件Ø很多你想也許一些變種,可經.ENV改改鄂麥數量每秒