[英]Laravel: Queueing mails with laravel
我想按照https://laravel.com/docs/5.5/mail#queueing-mail所述將郵件排隊。
這是我到目前為止所做的:
我改變QUEUE_DRIVER
在.env
文件
QUEUE_DRIVER=database
我創建了一個工作表
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.