0
我的應用程序(web)中有一個「電子郵件發送」。用戶發送他的姓名,電子郵件,主題和一些文本,然後我發回一封電子郵件給他(與phpmailer)。這需要10個secons(整個過程),但提交信息的驗證(和響應)僅需2秒(使用ajax)。Deamon,Threads o我需要使用的php
¿即使用戶刷新頁面,我如何在2秒內響應並讓服務器發送電子郵件(8秒)?
我說英語很糟糕,對不起。
我的應用程序(web)中有一個「電子郵件發送」。用戶發送他的姓名,電子郵件,主題和一些文本,然後我發回一封電子郵件給他(與phpmailer)。這需要10個secons(整個過程),但提交信息的驗證(和響應)僅需2秒(使用ajax)。Deamon,Threads o我需要使用的php
¿即使用戶刷新頁面,我如何在2秒內響應並讓服務器發送電子郵件(8秒)?
我說英語很糟糕,對不起。
最好的解決方案是使用異步過程。
用戶的請求只會將數據發佈到某種消息隊列中。 (亞馬遜SQS,RabbitMQ)。
在隊列的另一端,您將始終運行守護進程。該守護進程將使用隊列中的消息併發送電子郵件。它也可以在多個實例中運行以提高性能。尼斯的方式,讓這個守護進程的活是主管(http://supervisord.org/)
/--- sender Producer ----->queue---- sender \--- sender \-- sender
你可能會尋找PCNTL:http://stackoverflow.com/questions/10871293/how-does-pcntl-fork-work- in-php –
最簡單的解決方案是通過phps'ignore_user_abort()'簡單地從客戶端請求中分離出來。然後,您可以花費所有時間完成請求,與用戶的操作無關。 – arkascha
@arkascha需要在2秒內回覆。感謝您的評論。 –