作者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/cn.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