zoukankan      html  css  js  c++  java
  • ferrero项目的bug与思考2

    1、出现重复的code

    类似Sku这样的数据(code唯一),我们从第三方获取,可以给code 添加一个唯一索引。这样防止出现重复的code

    2、项目里的job

    如果job执行时间不是经常变更,最简单的就是springboot的 @Scheduled 之前用的是公司产品组的job,感觉很不方便

    @Scheduled(fixedRate=4000) 
     每隔4秒执行一次,启动时会执行
    @Scheduled(cron="0 0 1 * * ?") 
     启动时不会执行,每天凌晨1点执行

    启动类添加 @EnableScheduling

    job方法为void

    @Scheduled(cron="0 0 1 * * ?")
        public void snpooltask() {}

    3、查询结果不一致

    第一个查询HU+from 没有查询到结果 ,   那么sn 就是默认值"",

    但是 cartonCountQuery 这里查询,parentSn 就是""
    就和第一个查询的条件不一样了。count出数字了

    private HuSnVO getHuSnVOByHu(String hu,HuSnVM vm){
            log.info("[getHuSnVOByHu]hu="+hu);
            HuSnVO vo = new HuSnVO();
            BasicDBObject query = new BasicDBObject();
            query.put("HU", hu);
            if (!StringUtils.isBlank(vm.getFrom())) {
                query.put("fromLocation", vm.getFrom());
            }
            if (!StringUtils.isBlank(vm.getTo())) {
                query.put("toLocation", vm.getTo());
            }
            String sn ="";
            MongoCursor<Document> cursor = mongoTemplate.getCollection("serialNumber").find(query)
                .skip(0).limit(1).iterator();
            while (cursor.hasNext()) {
                JSONObject jsonObject = JSONObject.parseObject(cursor.next().toJson().toString());
                sn= jsonObject.getString("sn");
                String batchNo = jsonObject.getString("batchNo");
                vo.setBatch(batchNo);
                String skuCode = jsonObject.getString("skuCode");
                vo.setSkuCode(skuCode);
                vo.setHu(hu);
             
                vo.setTo(finalLoc);
                List<Sku> byCode = skuRepository.findByCode(skuCode);
                if(ListUtil.isNotEmpty(byCode)){
                    vo.setSkuName(byCode.get(0).getNameCh());
                }
            }
    
            BasicDBObject cartonCountQuery = new BasicDBObject();
            cartonCountQuery.put("parentSn", sn);
            if (!StringUtils.isBlank(vm.getFrom())) {
                cartonCountQuery.put("fromLocation", vm.getFrom());
            }
            if (!StringUtils.isBlank(vm.getTo())) {
                cartonCountQuery.put("toLocation", vm.getTo());
            }
            long count = mongoTemplate.getCollection("serialNumber").count(cartonCountQuery);
            vo.setCartonCount(count);
            return vo;
        }

    4、测试环境从第三方数据ok,正式环境拿数据检查不够细致

    测试环境对方推送orderTime 格式是这样,但是正式环境我们接受的数据是

    运行将近半个月需要做其他功能时,我发发现这个问题。。。

    5、连接SFTP 连接数过多

    这个问题主要是两个方面1.连接以后没有关闭 2.初始化连接多,关闭的时候只关闭了部分

    我的问题是重复了一行代码

    sftp关闭一定要关闭sessoin 然后sftp退出

  • 相关阅读:
    ViewPager+导航条实现方式比较---------来自互联网
    ScrollView重写实现监听
    android:layout_gravity和android:gravity
    解决Android Studio添加依赖时出现“Manifest merger failed
    Android SD卡读取简单操作
    Android文件读取简单操作
    20160623
    Mac 下两款 Markdown 编辑器 Mou/MacDown 大 PK
    iOS开发编码建议与编程经验(书写规范)
    iOS开发调试技巧总结
  • 原文地址:https://www.cnblogs.com/lyon91/p/11301215.html
Copyright © 2011-2022 走看看