美文网首页
一个id分组请求导致的bug

一个id分组请求导致的bug

作者: 鸿雁长飞光不度 | 来源:发表于2023-08-29 13:04 被阅读0次

今天突然接到业务反馈,下载的一个excel表格的数据不对,表格显示的消费金额竟然比商家收到的总金额还多,明显有问题。

  1. 首先打开日志,我擦,竟然没有日志,也没有链路,后来仔细查看发现因为日志系统里面打印的单条日志太多,导致单条日志截断了,链路以及完整的日志信息自然是采集不到了,只留下一些无用的片段。
  2. sandbox复现一下吧,我擦,构造了一下使用场景发现结果正常着呢。
  3. 这个地方用的是从数据库,会不会主从同步出问题了,好像也不会,本着怀疑的态度还是查看了一下没有发现问题。
  4. 没有办法只能把batchNum该小点,让日志可以完整打印,然后上线,发现每次请求都是一样的, 发现少了一个i++
// 拆分查询
    batchNum := 2000
    length := len(ids)
    chunks := int(math.Ceil(float64(length) / float64(batchNum)))
    result := []*pb.ID{}

    for i, end := 0, 0; chunks > 0; chunks-- {
        end = (i + 1) * batchNum
        if end > length {
            end = length
        }
                // ids[i*batchNum : end] 做业务请求
        // i++
    }

其实上面写法不好,尤其是业务处理逻辑和索引变量容易混在一块,业务处理逻辑长的时候不直观,可以采用类似下面的实现会更好。

func Chunk[T any](slice []T, chunkSize int) [][]T {
    var result [][]T
    for i := 0; i < len(slice); i += chunkSize {
        end := i + chunkSize
        if end > len(slice) {
            end = len(slice)
        }
        result = append(result, slice[i:end])
    }
    return result
}

func main() {

    var t = []int{1, 2, 3, 4, 5, 6}
    for _, v := range Chunk(t, 10) {
        fmt.Println(v)
    }
}

相关文章

  • 2019-10-30

    {"id":31,"info":"修复京东价格过滤导致无法缓存bug。","isDelete":1,"isForc...

  • iview 异步树形数据 问题

    缺少 row-key="id" 导致 缺少 请求头 tree: true headerData: ...

  • spring security国际化资源文件修改方式

    测试小哥拿刀提bug,吓尿开发小哥,bug如图 分析问题原因:切换了时区导致请求头Accept-Language发...

  • Lambada笔记分享

    重复键的去除。 List 以ID分组 Map > List以ID分组后聚合对象的一个属性

  • 常见的限流算法

    限流的作用: 应对 1.热点业务带来的突发请求 2.调用方 bug 导致的突发请求 3.恶意攻击的请求 常见的限流...

  • javascript for循环+异步请求导致请求顺序不一致

    遇到一个问题for循环,再把循环出来的ID再进行二次请求这就导致一个问题请求结果返回顺序不一致原因:异步请求会把回...

  • 【实体类】权限分组

    字段 分组id 分组名 分组描述名 分组描述信息 权限list 懒

  • 如何实现下单的幂等性

    用户创建订单的时候,因为重复点击(前端bug)或者网络超时重传等原因,会导致重复请求,那么系统如何即使有重复请求也...

  • RequestMapping限定请求参数

    当前请求不能包括id属性 当前请求必须包含id属性 当前请求id必须为1 当前请求不能为1 当前请求必须包含 id...

  • RxPermission的隐藏bug

    起因 在测试测功能的时候,发现获取权限的回调回调了2次,导致将接下来的网络请求连续发出2次请求,继而bug发生。 ...

网友评论

      本文标题:一个id分组请求导致的bug

      本文链接:https://www.haomeiwen.com/subject/wldnmdtx.html