
项目经历
文章平均质量分 63
一蓑烟雨任平生2024
这个作者很懒,什么都没留下…
展开
-
续传查询SQL不规范导致漏数的问题
查询交易记录的时候,,用户需要一页一页往下翻,每点击一次就会将续传接口包发到后端接口进行查询返回下一页的数据,续传接口有几个字段,是续传键值,后端的SQL会根据上次读取到的最后一条往后捞数据。还有的场景就是,续传语句中筛选的顺序是A,B,C,但是在order by的时候掺杂了其他字段D进去,也会导致漏数出现。因为三个字段在order by中的顺序与续传语句中筛选不一致,导致在查数时数据会错乱、漏数。结论:order by的顺序要与续传语句的筛选顺序保持一致,否则会导致漏数。原创 2024-04-20 10:19:44 · 423 阅读 · 0 评论 -
记录一次引用拷贝导致的缺陷
问题:同一事务,跨月查询(如查1月31日的下一工作日,此时会查询1月和2月的假期表数据),然后再查回1月的假期表数据,此时一月的假期表数据就有问题。根本原因是浅拷贝使用不规范,A浅拷贝给B,然后A还在被使用,同时B的信息也在被更改。导致B信息的修改直接影响到了A,即:此时查出来的假期表对象workDay已经被修改为2月份的对象了,这个时候想要查询1.31就会有问题,因为2月份最多只有29天,对应的假期表对象:YYYYYNNNNYYNNN....(只有29个标志位)原创 2024-04-11 22:59:07 · 274 阅读 · 0 评论 -
记一次多线程写入文件出现IOException:Stream Closed的问题
网关在解析1000个05文件(txt)写入到SFTP文件时,是每次读取1000 * 5条数据,然后每1000笔数据创建一个线程逐条数据进行字段数值映射转换,一共创建5个线程扔到线程池进行处理。每条数据解析完都会将数据写入到SFTP的DAT文件,并且累加条数写入到CTL文件。原来是1000笔数据才进行解析,每个文件造数据10条,导入没问题。为了方便测试,把条数调小到每次读取5 * 2 条数据,每个文件有10条数据,方便验证多线程读取有无问题。原创 2024-03-11 21:24:01 · 1001 阅读 · 0 评论 -
记一次因为共享缓存导致流水号重复的问题排查过程
1)第一次跑批:09分库的任务先发现缓存流水号为空,就会从09分库申请一段流水(1-1000),并放到缓存中使用,若此时97分库的任务也需要使用流水号,发现缓存中有流水号了,就直接使用缓存中的流水号并且同步到数据库,并没有从97分库申请流水。2)第二次跑批:97分库的任务先发现缓存流水号为空,就会从97分库申请一段流水(1-1000),并放到缓存中使用,注意本次使用的流水在第一次跑批中已经使用过,如果作为唯一键插入分库中,就会出现唯一键冲突。原创 2024-03-10 23:23:09 · 574 阅读 · 0 评论