2017-02-21 11 views
0

私はLaravelに電子メールをキューイングするためにRedisを接続していますが、すべてが正常です... しかし、dev環境ではmailtrap.io(無料版)を使用します。Laravel workerをスローダウン

そして、問題はmailtrapは毎秒2メールを受信することができますので、私はキューに登録されているすべての電子メールを取得することはありません、Redisのは狂ったように電子メールを送信するため...多分10あたり/ sの

があることです何とかキューを遅くして1秒間に最大2つのメールを送信する方法?

+1

Mail :: getSwiftMailer() - > registerPlugin(new \ Swift_Plugins_AntiFloodPlugin(2,1)); '最初のパラメータは接続ごとに送信する電子メールの最大数であり、2番目のパラメータは待機です接続間の秒数です。詳細はこちら[こちらをチェック](http://www.camroncade.com/limit-the-number-of-messages-sent-on-one-smtp-connection-laravel-5/) – KuKeC

+0

私はLaravel - Notificationsを使用していますメールを送信するには... – 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により変更することができるよりも、いくつかのvarはEMAIの数を変更したい多くのoを2通のメールを受け取る配列とコンストラクタを作成することができます秒でありますls per second

関連する問題