守护进程运行过程中出现部分重复性被插入


守护进程执行过程中出现数据被重复性的插入到数据库

###需要对大量数据的某个值进行内部数据的统计并进行分类插入不同的表进行存储,通过supervisorctl的守护进程进行此操作,在执行过程中发现有一部分数据在插入过程中会出现重复性的数据,造成统计分类的不准确,查看代码没有看到逻辑上的错误,打印日志也没有出现重复性的日志输出,但是最终数据库的记录依旧会出现重复,不知道是哪的问题,希望能够得到解决,谢谢。
特附上代码供参考

public function handle()
    {
        while(true) {
            $toolType = ['y'=>1,'m'=>2,'d'=>3,'h'=>4,'s'=>5];
            $productList=ProductService::getAllDataList();
            if(!empty($productList)){
                foreach($productList as $v ) {
                    $arrDetail = json_decode($v['detail'],true);
           $tag=ParameterData::ToDealForTag($arrDetail,$v,$v['pid'],$v['id'],$toolType);
$secTag=ParameterData::ToDealForSecTag($arrDetail,$v,$v['pid'],$v['id']);       $xtag=ParameterData::ToDealForClassi($arrDetail,$v,$v['pid'],$v['id']);
                    unset($arrDetail);
                    if (!empty($tag)){
                  // //此处日志打印记录正常,插入数组数据,但数据库中会出现部分相同的数据记录
                        ProductService::ProductTagAdd($tag);
                        unset($tag);
                  // //此处日志打印记录正常
                    }
                    if (!empty($xtag)) {
                        ProductService::ProductXtagAdd($xtag);
                        unset($xtag);
                    }
                    if (!empty($secTag)){
                        ProductService::ProductSectagAdd($secTag);
                        unset($secTag);
                    }             ProductService::ProductUpdateDetail(['id'=>$v['id'],'updated'=>time(),'is_per'=>0]);
                    //此处日志打印记录正常
                    unset($v);
                }
            }
            unset($productList);
            sleep(10);

        }
    }
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 2

我的定时任务也出现过,我这边一开始怀疑是mycat导致的,换mysql后也一样。后来觉得命令执行了多次,但用redis做了限制后还是会重复。现在觉得是php或laravel大数据运算的时候导致的。我把定时任务的命令分开服务器后就好了,但还是出现过一次。

3年前 评论

@Chensun 我经过多次测试发现如果在插入之前对数据进行日志记录的话插入的数据是正常的

3年前 评论
Chensun 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!