buguge - Keep it simple,stupid

知识就是力量,但更重要的,是运用知识的能力why buguge?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

定时任务查询通道狂暴超时,原因竟然是取数据不当----清扫100年前纽约街头马粪的不是清洁工,而是汽车

本文首发于我的公众号 [发现问题就解决,是低效的方式,得探究根源]、【100年前的纽约街头,市民以马车为出行工具,问题来了

 

我们支付系统有个定时任务,就是将系统里所有付款中的交易,调用第三方银行查单接口,然后持久化更新付款状态。

 

许多同学都做过类似的定时调度程序吧。

 

近期,许多“http超时”方面的系统告警与这个定时任务有关。分析这个定时任务执行的log,出现好多调用三方银行接口http连接超时的现象。

 

怎么办?必然是一方面与银行方反馈沟通,另一方面得看http请求工具类,分析代码,排查原因。例如:finally里关闭释放连接,控制connect timeout,连接复用,排查网络,等。

 

最终解决后,超时问题得到控制。不过,根治这个问题的解决办法是——查询本地数据加了时间条件限制。

 

就是说,定时任务从DB里查询的是所有付款中的交易,包括一个月前的、半年前的、上个世纪的。而实际业务中,这些过期的单子算是废单了,这里无需再查银行通道。而这个定时任务真正要关注的,是查询近期的付款中的交易(具体多久结合实际交易周期评估一个阈值,例如2天即可)。

 

【后记】

1)发现问题就解决,是低效的方式,得沉下来一步步探究根源,找到症结所在,从根源处解决问题,才能有效的方式。

2)100年前的纽约,市民以马车为出行工具,一度是贵族高贵的象征。这个时期,城市环境问题越发明显,街头马粪到处都是,尽管有清洁工和各种清洁技术。这成了苦恼市政的头等大事。后来,随着工业革命和科技的发展,汽车诞生了,逐步改变了人们的认知,得到人们的认可。所以,解决这个马粪问题的不是清洁工,而是汽车取代了马车。

 

【定时任务开发规范】

定时任务开发注意要点:

待补充

 

 

 【EOF】知识就是力量,但更重要的是..., 欢迎关注我的微信公众号「靠谱的程序员」,解密靠谱程序员的日常,让我们一起做靠谱的程序员。

posted on   buguge  阅读(37)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
· 全程使用 AI 从 0 到 1 写了个小工具
点击右上角即可分享
微信分享提示