作者b90022790 (PomeloLaLa)
看板PHP
標題[請益] 背景執行相關問題
時間Tue Feb 4 23:13:14 2020
各位php板上的各位前輩好!
目前在架設一個簡單的訂單系統,有個功能無法順利完成,希望前輩們能給些意見,謝謝
環境:php7.4.1、 MySQL、CentOS 6.8
功能:當商家按鈕確認訂單後,除了修改MySQL內容外,希望能夠寄mail通知客戶
問題:使用PHPMailer接gmail SMTP,然而速率過慢,商家的client端需要等待執行完畢
才能看到確認後的結果,希望能先讓商家看到結果,寄信的功能在伺服器背景執行。
試過的解決方式:先寫一個send.php專門處理寄信的功能,在商家client的頁面直接顯示
確認訂單後的結果畫面,並在商家該php頁面使用system()執行send.php,程式碼如下:
system("php send.php user"); //user為收信者參數
然而這仍然會等待執行完才會回responce。
使用「php 背景執行 超時」當關鍵字,採用將結果輸出到.out,改system()程式碼如下:
system("php send.php user > MAIL.out");
然而這樣卻變成連寄信都沒有執行就結束了。
希望前輩們能給一些如何處理該功能的意見,以及為何該system()無法正常執行
謝謝各位前輩!還請各位指點!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.168.148.244 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1580829198.A.D7C.html
1F:推 ddoll288: system("php send.php user &"); 試試看? 02/05 10:42
依照您的方法已經可以成功完成!非常謝謝您!
※ 編輯: b90022790 (1.168.148.244 臺灣), 02/05/2020 16:48:29
2F:推 crossdunk: 通常這個用queue處理比較好 03/13 18:57