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

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

时间:2023-08-13 18:22:42浏览次数:63  
标签:清洁工 查询 ---- 任务 100 超时 定时

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

 

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

 

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

 

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

 

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

 

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

 

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

 

【后记】

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

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

 

【定时任务开发规范】

定时任务开发注意要点:

待补充

标签:清洁工,查询,----,任务,100,超时,定时
From: https://www.cnblogs.com/buguge/p/17626953.html

相关文章

  • C语言中如何进行动态内存分配和释放
    动态内存分配和释放是C语言中非常重要的概念,它允许在程序运行时动态地申请和释放内存空间,提高程序的灵活性和效率。本文将围绕这一主题,详细介绍C语言中如何进行动态内存分配和释放。在C语言中,动态内存分配和释放主要通过malloc()和free()函数实现。malloc()函数用于申请一块指定......
  • VirtualBox虚拟机设置双网卡:内网固定IP方便内部使用、外网DHCP方便上网
    1.管理->主机网络管理器网卡设置:DHCP服务器设置:2.选定已创建的虚拟主机,设置->网络网卡1设置为:仅主机网卡2设置为:桥接网络 3.主机启动,修改网卡配置 4.查看效果 ......
  • 一键式文本纠错工具,整合了BERT、ERNIE等多种模型,让您立即享受纠错的便利和效果
    pycorrector一键式文本纠错工具,整合了BERT、MacBERT、ELECTRA、ERNIE等多种模型,让您立即享受纠错的便利和效果pycorrector:中文文本纠错工具。支持中文音似、形似、语法错误纠正,python3开发。实现了Kenlm、ConvSeq2Seq、BERT、MacBERT、ELECTRA、ERNIE、Transformer等多种模型......
  • 【web_逆向02】某易云逆向注意点
    加密入口需要用到a,b,c三个函数a,不需要动,直接copy就行b,标准的第三方库,直接安装即可:npminstallcrypto-js千万不要去抠CryptoJS,希望各位记住这个格式.js的标准第三方库https://www.npmjs.com/c,有点麻烦,库太老了--npm找不到functionc(a,b,c){var......
  • C语言编程教程:如何提取手机尾数
    C语言编程教程:如何提取手机尾数在C语言编程中,我们经常需要处理各种数据类型和操作。今天,我们将分享一个有趣且实用的主题:如何提取手机尾数。手机尾数是手机号码中的最后几位数字,提取这些数字可以为我们的程序带来更多可能性。在本文中,我们将介绍一种简洁而有效的方法,帮助你轻松提......
  • 一些要注意的问题
    关于重载运算符重载运算符时,我们用了这种方法:booloperator<(constnode&x)const{ returnx.v<v;}实际上等同于这样booloperator<(constnode&x)const{ returnv>x.v;}也能写成这样的形式friendconstbooloperator<(nodex,nodey){returnx.v>y.v......
  • ApiPost自定义环境变量 缓存token的操作步骤
    使用场景:测试的时候获取token,然后其他请求的时候自动带token。获取Token后,执行后执行脚本,apt.variables.set("token",response.json.access_token);请求回来的参数在json中,根据需要修改这时候token就存储到环境变量中了2.使用的时候如下:......
  • 使用C语言编写文件读写工具
    使用C语言编写文件读写工具在现代软件开发中,文件读写是一个非常常见且重要的操作。通过使用C语言编程,我们可以轻松地实现文件的读取和写入。本文将介绍如何使用C语言编写文件读写工具,以及一些相关的注意事项。2使用C语言编写文件读写工具首先,我们需要包含头文件stdio.h,这个头文......
  • 暑假牛客多校第八场 2023-8-11(H、K)
    H.Insert1,Insert2,Insert3,...算法:栈做法:   我们分析题目发现每个区间的左端点一定是\(1\),而且每个新加入的数\(x\)一定是匹配最靠近它的且未经匹配的\(x-1\)。举个例子,在[1,1,2,2,3]中我们加入一个数\(3\)时由于从左到右的第二个\(2\)是已经和第一个......
  • 利用C语言实现简单的计算器程序
    利用C语言实现简单的计算器程序在日常生活中,计算器是一个不可或缺的工具。它可以帮助我们进行各种数学计算,从简单的加减乘除到复杂的三角函数和指数运算。而使用C语言编写一个简单的计算器程序,则是一个很有挑战性和有趣的任务。1利用C语言实现简单的计算器程序首先,我们需要明确......