利用Guzzle實現另一種PHP異步發送郵件(laravel5.4)


前言:第二種實現方法

 

方法的思路:

此方法的實現需要借助Guzzle這個PHP的HTTP客戶端,用來輕而易舉地發送請求,並集成到我們的WEB服務上(laravel中如何引入guzzle不多說)

使用該方法所實現的異步為讓發送郵件的請求在不需要等待回應的情況下都發出,即只要循環觸發方法,分開發送,分開響應,可以監控,

guzzle中文文檔: http://guzzle-cn.readthedocs.io/zh_CN/latest/quickstart.html

 

過程:

該方法為郵件內容處理,然后調用了doThread方法(自己寫的方法),此方法為開始異步的方法,第一個參數為url,即異步請求的路由;第二個從參數為一個回調函數,此處我用來記錄郵件發送后請求失敗或者成功

接下來介紹doThread方法,此方法即為異步請求的地方,此處調用的方法均為Guzzle中的方法,所以本篇博文的重點其實是看明白Guzzle的手冊

最后就是異步請求給定的路由連接實現發送郵件,在我的回調函數當中可以分別記錄下發送成功或者失敗

順便說一下$response->getbody()->getContents()該語句可以獲取你異步請求的方法中返回的結果,手冊中均有。

 

總結:

該方法還是要必須等待所有的郵件都發送完成返回才能進行其他操作,所以等於發送郵件的實現還是占用了主進程,只是我們變着法子讓處理的時間變到了最短。

但是我仍然覺得這樣的方法在請求達到一定的數量以后還是需要較長時間的等待,並不友好。

最后學會看手冊真的很重要,手冊里面都寫着呢。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM