私が作っている簡単なバッチメールのスキーマが出てきました。 emailerは、cronジョブのPHPスクリプトを実行することで、5分ごとにX個の電子メールを送信します。問題は、これが最良の方法だとは思っておらず、より良い代替方法を探していたということです。または検証;)。バッチ・メール送信のmysqlテーブル設定?
(簡体字)スキーマは次のようになります。
EmailList | JobQue | Jobs
------------|----------|----------
email | jobid | id
| email | esubject
| ebody
アイデアは、新しいジョブが作成されたとき、それはJobs
テーブルに追加し、追加される送信する必要があるすべての電子メールのことですJobQue
テーブルに移動します。
実際に電子メールを送信するcron'd PHPスクリプトは、JobQue
テーブルの次のX個の項目をループして送信し、削除します。
これは良い方法ですか?それは適度な負荷の下でバックルをつけますか? (1000-5000の電子メール、1日に1-5の仕事)?もちろん追加された電子メールがあればそれは送信されますが、他にも問題はありますか?(たとえ1つのmysqlクエリでそれらをすべて挿入していても、テーブルに1000レコードを追加しようとするなど)
おかげで、
マックス
私はこれがシステムのインフラストラクチャ、特にそのハードウェアに大きく依存していると思います。誰もあなたの環境をエミュレートすることができないので、ベンチマークとストレステストを自分で行う必要があります。 1つのクエリにカプセル化された1000個の挿入物についての懸念については、ほとんどの場合にうまくいくはずです。 – pong