我想出了一個我正在製作的簡單批量電子郵件的模式。電子郵件發件人將通過運行cron作業的php腳本每5分鐘發送X封電子郵件。問題是我認爲這不是最好的方法,而是尋找一種更好的方法;或驗證;)。批處理郵件mysql表設置?
(簡化)架構看起來像:
EmailList | JobQue | Jobs
------------|----------|----------
email | jobid | id
| email | esubject
| ebody
的想法是創建一個新的工作時,將其添加到Jobs
表上,凡需要發送將被添加電子郵件到JobQue
表。
然後實際發送電子郵件的cron'd php腳本將循環遍歷JobQue
表中下一個X個項目,發送並刪除它們。
這是做這件事的好方法嗎?它會在中等負載下屈曲嗎? (1000-5000封電子郵件,每天1-5個工作)?當然,如果有更多的電子郵件被添加然後發送,但是會有其他問題(例如試圖一次性向表中添加1000條記錄,即使我使用一個mysql查詢插入它們)?
感謝,
最大
我認爲這在很大程度上取決於您系統的基礎設施,特別是其硬件。你應該自己做一些基準測試和壓力測試,因爲沒有人可以模擬你的環境。關於你對1000個插入封裝在單個查詢中的擔心:我認爲這應該在大多數情況下工作。 – pong 2012-01-27 16:23:57