Laravelで電子メールを送信するためのキューを実装したいと考えています。キューは正常に動作していますが、効率が心配です。これらは私の設定です:Laravelで電子メールキューを実装する最も効率的な方法
ローカルデータベースでキューを使用するためにjobsテーブルを作成し、.envファイルを設定しました。
私は、サーバー上でこのcrontabの設定している:
* * * * * php /var/www/imagine.dev/artisan schedule:run >> /dev/null 2>&1
をアプリ\ Conosle \ Kernel.phpにスケジュールを設定しているので、私は手動で「キュー:聞く」を入力する必要がいけないすべてのコンソールを介して時間。
$schedule->command('queue:listen');
今質問します。これが効率的かどうかを知りたいですか?私はキューを持つことについて心配しています:バックグラウンド消費CPUとメモリで常に実行されて聞いてください。私は唯一のキューを実行しようとしている
:5分ごとを聞いて、その後、
$schedule->command('queue:listen --sleep 300');
が、再びと一緒に寝て、それを入れて、これが最善のアプローチであるかどうかわからないです。
私が試したもう一つの試みは 'queue:work'ですが、これは一度に1つのキューしか処理しません。
理想的には、5分ごとにすべてのキューを処理し、メモリとCPUの一定した使用を避ける方法が好きです。
最良のアプローチは何ですか?
アプリケーションは、 'queue:listen'メソッドの呼び出し時に完全にブートストラップされます。これにより、必要なCPUの量が大幅に削減されます。しかし、アプリケーションはメモリに結びついているので、そこにいくつかの使用法があります。その使用法は、ブートストラップにどれだけ追加したかによって決まります(私は99%のケースのように最小限に抑えます)。それは、これらの電子メールが絶対的に大規模でない限り、使用量はごくわずかです。私は一貫して1日に数万の電子メールを送り、何の問題もありません。 – Ohgodwhy
@Ohgodwhyあなたは私が単にキューを使用することをお勧めしますか:プロダクションを聞きますか?タイムアウトなしで? –