php - 触发/延迟 PHP 脚本处理

标签 php triggers delay

目前我有一个脚本可以在有人被定向到支付处理器后处理订单。

支付处理商偶尔会向我的网站发送两个(或更多)回复(通常在第一次回复后的一分钟内)。
我已就此问题联系支付处理商;他们不认为这是他们系统的问题,并说我的脚本应该考虑任何额外的响应并且只听最后一个发送的响应。

对于多响应的订单,第一个响应成功,所以当有这个响应进来的时候才处理订单。
如果出现第二个响应,通常会在大约 30 秒后出现错误响应,然后我取消订单。
问题是,我已经从第一次回复开始就向客户发送了一封“感谢您的订单”电子邮件,这显然不理想。

有没有办法在处理订单后触发一个单独的脚本运行几分钟?即在原始订单后几分钟检查订单是否仍然有效并发送电子邮件

我在想一个每分钟运行一次的 cron 作业,但肯定这会有点过分,因为脚本只需要在下订单时运行?

最佳答案

您可以使用 shell_exec("/usr/bin/php/path/to/test.php ".($orderId)."&"); 启动后台作业,延迟 3 分钟开始 (sleep(180)); 然后执行代码来检查订单的状态。 $argv[2] 应包含您的 orderId 编号。

关于php - 触发/延迟 PHP 脚本处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12568975/

相关文章:

php从文件中解析ascii文本获取内容

php - 为扩展另一个类的类编写 PHPUnit 测试会产生 'Class not found' 错误

php - 查询构建器加入多对多关系

sql - 不同模式中的触发器

android - 在 Android 中安排保证在接近预定时间运行的任务的最佳方法是什么?

iOS NSNotificationCenter 奇怪的延迟

PHP cURL 返回数组

sql-server - 使用 RAISERROR 和 ELSE 大小写问题触发

sql - PostgreSQL 中的 TRIGGER ON VIEW 不会触发

java - 热 Observables 的 RxJava 延迟