2011-08-31 24 views
2

我正在建立一個網站,用戶將能夠發送通訊。他們需要跟蹤發送過程,並在需要時停止發送。由於他們可能有很多電子郵件,實際的發送將被委託給腳本,腳本將在後臺運行並由用戶執行。這個腳本將處理所有用戶的通訊,只有它的參數會有所不同。羣發郵件隊列(可能與PHP進程間通信)

爲了讓用戶能夠看到有多少郵件已發送並停止發送過程,我正在考慮在網站和後臺運行的腳本之間實現某種進程間通信,但我不確定怎麼做。

任何幫助將不勝感激。

回答

3

的方法:

  1. 當發送通訊,隊列中的所有目標地址在表中。
  2. 在每隔幾分鐘運行一次的cronjob中處理一個修復量的隊列。

然後,當顯示已發送金額時,只需計算您的隊列中處理的條目數量。

當使用隊列工作時,也將修復腳本遇到的任何性能問題,當每個人同時點擊「發送」時。

停止郵寄

如果客戶想停止發送,你只需要刪除所有queue'd電子郵件的郵件匹配的位置。如果你想保留這些數據,你也可以將它們標記爲「取消」。 (您將必須確保您的隊列只處理來自隊列的「待處理」郵件)。

+0

謝謝你的回答。用戶想要停止發送時怎麼樣?我需要以某種方式殺死這個過程。 – Vladimir

+0

更新了我的答案,希望現在更清楚。 –

+0

這個答案很理想 - 但對於任何尋找PHP進程間通信功能的人來說,它們都是存在的。見http://php.net/manual/en/book.sem.php – mjec