1
我有一個小訂單服務應用程序,通過ajax將訂單提交給PHP腳本。 當PHP腳本接收到它的命令後,它將它放入數據庫中,發送一個'OK'消息返回給客戶端,然後向客戶發送確認電子郵件,向我發送確認郵件。 問題是,客戶端沒有看到「確定」(它更新瀏覽器顯示)約15秒。如果我註釋掉電子郵件發送,請不要拖延。PHP郵件()函數中的延遲
... write to database
echo "OK";
mail($semail,'Msg Subject',$message, $header, $bounceto);
mail($semail2,'Msg Subject',$mesage, $header, $bounceto);
消息只是幾行。
問題:
- 調用mail()函數時爲什麼會有延遲?
- 如何在不等待PHP腳本完成的情況下發送'OK'消息?我正在猜測某種衝動。
感謝您的信息和建議。一分鐘的延遲可能是可以接受的。如果我可以將緩衝區刷新到客戶端,然後讓PHP突然離開,那可能會更好? –
它應該與http://php.net/manual/en/function.fastcgi-finish-request.php一起工作,但它需要https://php-fpm.org/ – Mark
...並且有http:// php.net/register_shutdown_function你可以把郵件功能。儘管如此,我仍然認爲他們不適合解決方案。電子郵件從來不是即時的,所以我仍然選擇排隊。 – Mark