php 非同步發送郵件的問題
需求:
在某系統裡,上傳完一個產品的補丁檔案或發布產品的更新資訊,需要給使用該產品的使用者(使用者數量較多)發送一封電子郵件,發送後提示發送完畢!
我們常用的PHP代碼寫法如下:
假設該次發送100封郵件。本次操作會出現什麼結果呢?
使用者體驗:使用者等待->發送郵件完畢->返回資訊(這期間極有可能,指令碼執行逾時)
本次操作由於需要發送大量的郵件,導致php執行時間過長,使用者煩躁的等待。當apache或者nginx等待超過允許執行時間,將返回逾時錯誤。這個時候使用者不明確本次操作到底成功與否,到底發出了幾封郵件。
由此我們可以看出以上代碼使用者體驗極差,並且不能夠順利完成任務。
那麼如何解決這個使用者體驗較差的問題呢?
這裡提到一個概念,非同步執行
使用者體驗:使用者等待->發送完畢
朋友們就會問,怎麼缺少發信環節?
OK,發信環節就在使用者提交請求的時候,把發信任務轉給了一個單獨處理髮信的php程式處理了,當使用者看見“發送完畢”的時候其實信還沒發送完,這個時候,發信程式正在後台努力的工作著,一封一封的向外發送。
您可能感興趣的文章
- 如何解決php中並發讀寫檔案衝突的問題
- php發送郵件組件
- 使用PHP的GZip壓縮功能對網站JS和CSS檔案進行壓縮加速網站訪問速度
- 大流量網站該如何?最佳化伺服器、靜態化、資料庫最佳化、負載平衡以實現高負載
- Javascript解決左右高度自適應的問題
- PHP解決網址URL編碼問題的函數urlencode()、urldecode()、rawurlencode()、rawurldecode()
- 用PHP函數memory_get_usage擷取當前PHP記憶體消耗量以實現程式的效能最佳化
- 發送郵件SMTP Error Could not connect to SMTP host. send fail的解決辦法
http://www.bkjia.com/PHPjc/901423.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/901423.htmlTechArticlephp 非同步發送郵件的問題 需求: 在某系統裡,上傳完一個產品的補丁檔案或發布產品的更新資訊,需要給使用該產品的使用者(使用者數量較多...