首页 > 其他分享 >订单请求接口设计,避免timeout超时问题 下单解决

订单请求接口设计,避免timeout超时问题 下单解决

时间:2023-09-14 23:36:33浏览次数:41  
标签:11 10 timeout 09 接口 下单 2023 超时

订单请求接口设计,避免timeout超时问题 下单解决

接上篇:外部系统对接下单幂等性校验逻辑及接口超时处理

https://www.cnblogs.com/oktokeep/p/17668039.html

1.第一步
中间表数据 & 取消接口 两件事情分开,不要因为中间表缺失数据,而影响到取消的操作。

2.第二步
中间表数据兼容,不存在的时候才新增,同时兼容存在多条记录的情况 同时兼容多条的记录,按最新的排序取第一条来处理。
测试通过: 下单 》》 订单推送(订单同步到第三方系统) 》》需要流程来测试。 完整流程才可以确保少出错!!! 测试发现下单是成功了,但是订单推送同步因为缺失中间表的数据而异常了。

3.第三步
>>> 结论: redis锁定的时间,需要大于接口超时的时间。目前是10秒 redis
桥接过来的数据,需要等待数据落库。及接口的事务提交完成。
<<<

日志请求链路明细:
13:30:00  订单下单 超时时间,需要分析完整的日志    
  2023-09-11 09:10:06


2023-09-11 09:09:15.046	请检查姓名和身份证号码是否一致
2023-09-11 09:09:19.921	请检查姓名和身份证号码是否一致

2023-09-11 09:10:05.186
2023-09-11 09:10:14.915	请勿重复提交!
2023-09-11 09:10:20.696	feign.RetryableException: Read timed out executing POST

15秒 接口超时
10秒 redis

2023-09-11 09:10:21.740        新的请求
2023-09-11 09:10:22.255	您在该时间段内已订单,请勿重复下单。

>>> 结论: redis锁定的时间,需要大于接口超时的时间。目前是10秒 redis(简单的理解:锁定的时间包的住接口超时的时间,这样可以避免请求方因为超时而频繁请求。)
桥接过来的数据,需要等待数据落库。及接口的事务提交完成。
<<<
更改调用方  15000  修改成  9000            redis锁定10秒,更改的是调用方的Apollo配置,而不是服务提供方的Apllo配置。( A调用B,更新的是A的配置)
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds = 9000

ribbon.ReadTimeout = 9000

ribbon.ConnectTimeout = 9000

 

标签:11,10,timeout,09,接口,下单,2023,超时
From: https://www.cnblogs.com/oktokeep/p/17703810.html

相关文章

  • 下单但未支付的订单倒计时自动取消
    下单但未支付的订单倒计时自动取消要实现下单但未支付的订单倒计时自动取消,可以使用以下技术实现:设置订单创建时间戳:在用户下单时,为订单设置一个创建时间戳,记录订单创建的时间。启动倒计时任务:当订单创建后,启动一个倒计时任务,根据设定的时间间隔进行倒计时。监听订单支付......
  • 安装系统出现dracut-initqueue timeout
    dracut-initqueuetimeout因为系统安装的时候默认的读取不到U盘的数据,需要手动指定。两种解决办法:出来install的界面之后,按e进入编辑界面,将原来第一行的内容改成:vmlinuzinitrd=initrd.imglinuxddnomodesetquiet第二行不变,然后ctrl+x执行,执行完之后能看到电脑所有的硬......
  • 日常踩坑_关于cassandra使用了count(1)又又又超时了
    背景提要由于习惯了用Mysql和Oracle这种数据库,切换到Cassandra之后真是踩了一系列的坑本来是一个简单的请求,Ijustwant简简单单求个表的总行数而表也不是什么千万级别的大表,just只是小小的几千条数据而已,然而cassandra非常给面子,本应该在千万级别查询才出的错,出现在了我一张......
  • tomcat报错:java.io.IOException: 您的主机中的软件中止了一个已建立的连接。页面响应
    tomcat报错:java.io.IOException:您的主机中的软件中止了一个已建立的连接。tomcat报错:org.apache.catalina.connector.ClientAbortException:java.io.IOException:您的主机中的软件中止了一个已建立的连接。 出现原因:1、由于客户端在发送请求后,还没等服务器响应就断开了......
  • 【Azure Function】修改Function执行的Timeout时间
    问题描述AzureFunction默认的Timeout时间是否可以调整呢?问题解答可以的,根据创建Function的时候选择的定价层不同,Function默认的Timeout时间也不同。消耗层的functionTineout默认是5分钟,最大可修改为10分钟高级和专用计划的默认值为30分钟,可以设置为-1表示无限制所以如需要修改,就......
  • setInterval和setTimeout的区别
    在制作网页动态效果时,一定会遇到某些需求,要求某段程序等待多时时间后再开始执行,就像在我们的生活中一样,待会儿再开始做一件事。在JavaScript中主要通过定时器实现此类需求,本文将对定时器做一个概括,正对setTimeout()做一个详细用法总结。一.setInterval与setTimeout的区别setInterva......
  • zone.js由入门到放弃之三——zone.js 源码分析【setTimeout篇】
    Delegate是个好东西,看看孙啸达同学对ZoneDelegate的介绍吧,这是他关于zone.js系列文章的第三篇~zone.js系列往期文章zone.js由入门到放弃之一——通过一场游戏认识zone.jszone.js由入门到放弃之二——zone.jsAPI大练兵zone.js源码分析接下来的全是干货,从头到尾,一干到底一点前置:Zon......
  • 阿里云函数计算FC,连接数据库超时的原因
    使用阿里云函数计算,连接sqlserver数据库一直超时 经过分析是sqlserver版本问题,sql2008r2必须升级到SP3  MicrosoftSQLServer2008R2(SP3)-10.50.6000.34(X64)  Aug19201412:21:34  Copyright(c)MicrosoftCorporation EnterpriseEdition(64-bit......
  • [原创]IOCP网络模型设置AcceptEx超时
    关键字:IOCP防止恶意链接;iocp检测只连接不发送数据;iocp设置AcceptEx超时;iocp防止ddos问题起因:(2008年的文章)https://bbs.csdn.net/topics/250032963在写服务器程序,比较常见的一个问题是,当socket连上来以后,它可能继没有数据发送也没有接受。那么这个连接就会挂在那里。假设这......
  • How to fix waitForFunction TimeoutError of puppeteer All In One
    HowtofixwaitForFunctionTimeoutErrorofpuppeteerAllInOnepage.waitForFunction超时错误error❌TimeoutError:Waitingfailed:30000msexceededconstselector='.foo';awaitpage.waitForFunction((selector)=>!!document.querySelector(se......