根据业务场景寻找合适解决方案(PHP)?

发布于 2022-09-12 12:54:51 字数 352 浏览 19 评论 0

系统环境:

  • Linux
  • PHP 7.3
  • ThinkPHP 6

先说一下业务场景:

  1. 订单创建成功之后,每一笔订单都需要进行统计及其他业务处理。
  2. 如何及时发现处理失败的订单,然后进行补单处理。
  3. 订单所产生佣金的处理。

要解决以上问题,最简单的办法就是通过脚本定时去扫表处理。

但是扫表存在一些问题:

  1. 长时间与数据库保持连接进行查询操作,消耗服务器资源。
  2. 在数据量较大或者延时较高的情况下,不能及时处理完,会影响其他业务。

想请教一下,这个场景适合用什么方案去解决?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

听你说爱我 2022-09-19 12:54:51

1.订单创建成功之后,每一笔订单都需要进行统计及其他业务处理。
A:使用队列异步处理。及时性不高的话,可以使用延迟队列
2.如何及时发现处理失败的订单,然后进行补单处理。
A:在逻辑层处理失败的时候,可以起一个队列去补单,如果需要强制保证成功,可以加ACK机制。如果要保证及时性,可以多加进程处理队列。

萌能量女王 2022-09-19 12:54:51

队列就是专门干这个事情的

时光清浅 2022-09-19 12:54:51

1.不建议由系统扫描处理,业务流程控制不好会容易引发并发问题,导致佣金多返库存多扣。。
2.最好是能直观的反馈出来,这里报错了,并由技术去进行处理。。否则的话,下次或者下下次还是会出现问题,有可能导致数据错乱成为一团乱麻,反而更难维护。。
3.不要想着靠程序去处理自身的bug,如果有程序不依靠人类去处理bug的一天,那将是人工智能取代人类的一天。。

酒儿 2022-09-19 12:54:51

消息队列,redis rabbitmq kafka 都是成熟的队列

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文