簡體   English   中英

Laravel:使用laravel排隊郵件

[英]Laravel: Queueing mails with laravel

我想按照https://laravel.com/docs/5.5/mail#queueing-mail所述將郵件排隊。

這是我到目前為止所做的:

  1. 我改變QUEUE_DRIVER.env文件

     QUEUE_DRIVER=database 
  2. 我創建了一個工作表

     php artisan queue:table php artisan migrate 

我將郵件添加到隊列中,如下所示:

Mail::to($request->user())
    ->queue(new OrderShipped($order));

我設置了一個cronjob,將按照以下文檔中的說明發送查詢的郵件:

protected function schedule(Schedule $schedule)
{
    $schedule->command('php artisan queue:work --once')->everyMinute();
}

如果我只寫$schedule->command('php artisan queue:work')->everyMinute(); 那么工作流程將永遠不會停止,因此服務器在某個時刻會非常繁忙,因為它們具有許多並行的工作流程,對嗎?

我是否想念任何重要信息以便使用laravel查詢郵件? 另外,如果我想每分鍾最多發送5封郵件-我該如何實現?

我認為最好設置主管配置,而不要執行cron作業。 這將有助於監視隊列作業。 通過使用以下文檔,可以輕松配置它。

https://laravel.com/docs/5.5/queues#supervisor-configuration

我認為不是每分鍾都啟動命令

php artisan queue:work --once

最好一次啟動工作隊列並添加一個睡眠計時器:

php artisan queue:work --sleep=60

這將每分鍾完成一項工作。 如果一個人每分鍾要做5次工作,可以減少睡眠時間:

php artisan queue:work --sleep=12                               

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM