关于“php延时队列取消订单”的问题,小编就整理了【3】个相关介绍“php延时队列取消订单”的解答:
rabbitmq延迟队列原理?延时队列最重要的特性体现在它的延时属性上,队列内部是有序的,延时队列中的消息是希望在到了指定时间之前或之后
1、用户下了订单,十分钟之内未进行支付则自动取消订单
2、新创建的店铺,如果在十天之内都没有上架商品,则发送消息进行提醒
3、用户注册账号成功后,如果半个月没有登录,则发送消息进行提醒
4、用户发起退款,如果三天之内都没有得到处理,则发送消息通知相关运营人员进行处理
5、预定会议后,需要在预定的时间点前十分钟通知各个与会人员参与
上面的这些场景都有一个特点,需要在某个时间发生之前或者之后完成某一项任务,例如发生订单生成时间,在十分钟之后需要检查该订单的支付状态,如果订单未进行支付,需要将该订单关闭,理论上我们通过定时任务,一直轮询数据,每秒都查一次,取出所有十分钟之后未支付的订单,然后关闭就好了,如果数据量比较少,使用定时任务确实是一个不错的选择,但是,如果数据量比较大怎么办呢,轮询大量的数据对数据库的压力是很大的,并且实时性也不好(轮询大量数据需要时间),这样就无法满足业务要求,并且性能低下.这种情况下我们就可以使用 RabbitMQ 的延时队列了
如何取消订单的方法?取消订单的方法如下:
1、先进入“我的订单”,点击“取消”按钮直接取消订单。
2、商家:订单在“等待到款”、“等待审核”、“等待预售商品到货”状态下,可以进入“我的订单”点击“取消”按钮直接取消订单。
3、订单在“正在配货”、“已配货”状态下,可以进入“我的订单”,点击“取消”按钮申请取消订单即可。
延迟队列原理?延时任务有别于定式任务,定式任务往往是固定周期的,有明确的触发时间。而延时任务一般没有固定的开始时间,它常常是由一个事件触发的,而在这个事件触发之后的一段时间内触发另一个事件。
也就是说,任务事件生成时并不想让消费者立即拿到,而是延迟一定时间后才接收到该事件进行消费。
到此,以上就是小编对于“php延时队列取消订单”的问题就介绍到这了,希望介绍关于“php延时队列取消订单”的【3】点解答对大家有用。