帮忙么网 > 支付中心 > 当前页面

支付中心:订单自动过期

2024-10-19 NEW个对象

支付中心模块,在生成订单之后,订单在10分钟会自动过期,这个功能是通过定时任务实现的。

这个功能我是写到简历上的。

面试官:定时任务设置的时间是多少久?
我说:10秒钟
面试官:定时任务比较耗性能该如何解决?
我说:做好隔离,可以将扫描的表单独分出来一个库,这样就不会影响其它业务。
面试官:有没有其它方案呢。
我说:RabbitMQ的死信队列,将订单信息加入RabbitMQ并设置有效时间,时间到期之后,就会进入死信对列,然后消费私信队列的消息即可。

如果使用RabbitMQ会增加系统的复杂度,还要运维RabbitMQ是比较麻烦的。

到此为止,特意去了解了一下订单如何关闭。

订单自动关闭的方法真不少:

除了上面两种,还有一种比较推荐:Redission + redis

可以参考这篇文章:Redis和Redission实现延迟消息


定时任务会遇到扫表问题,该如解决?

1、如果有备库的可以扫描备库。
2、优化表,给state字段添加索引

定时任务存在延迟问题,如果想减低延迟,可以用延迟消息方案。
但是要考虑增加消息队列的成本。

相关文章

  • 支付中心 :一个订单能被多个渠道支付成功吗?

    在程序里如果一个订单已经支付,是无法提交订单的。 存在小概率事件,一个支付渠道已经提交了,但是回调的慢了一点,这个时候另一个支付渠道提交了订单,同样也支付成功了。

    NEW个对象 2024-10-27

  • 调用第三方接口会遇到那些问题以及解决方案

    调用第三方接口会遇到那些问题以及解决方案? 如果有对接第三方的场景,一般第三方会给你一个文档,文档里包含对接第三方的规则,还有一些接口文档。 根据文档要求进行调用即可,不同的三方接口调用规则可能不一样。

    NEW个对象 2024-10-29

  • 支付中心:订单自动过期

    支付中心模块,在生成订单之后,订单在10分钟会自动过期,这个功能是通过定时任务实现的。

    NEW个对象 2024-10-19

推荐文章