使用tp/queue::later时的奇妙问题
配置
- php 7.19
- thinkphp 5
- fastadmin 2.0
- topthink/think-queue 1.1.6
问题
在弄项目时,遇到一个神奇的问题,明明sql语句没有问题,调试运行都没有问题,但是在程序完整执行后,数据库并没有变化。
解决
因为sql语句是写在事务闭包内的,本以为是事务导致的。
但是逐句排查后,发现是queque
队列执行了【设定的取消程序】导致的。
1 | $close_minue = 1440; |
上述代码,目的是一天后用户没有支付,则自动关闭订单,写法没有错误。
但是因为queue
设置里为Sync
选项,默认同步执行,
1 | class Sync extends Connector{ |
可见,sync
同步队列里并没有使用设定的时间,自然不会延时执行。
这可真是同步啊!!
之后修改队列默认设置,保存,问题解决。
其他资料
Comments