Commit 161fb70e authored by Liu lu's avatar Liu lu
Browse files

日志批量更新优化

parent 7c96ec43
Loading
Loading
Loading
Loading
+1 −3
Original line number Original line Diff line number Diff line
@@ -83,7 +83,6 @@ class LogTraceHandler
        if(!Coroutine::inCoroutine()) return;
        if(!Coroutine::inCoroutine()) return;
        container(LogTraceQueue::class)->addToQueue([
        container(LogTraceQueue::class)->addToQueue([
            'request_id'=>self::getRequestId(),
            'request_id'=>self::getRequestId(),
            'process_info'=>'',
            'is_completed'=>YES
            'is_completed'=>YES
        ]);
        ]);
        //LogTrace::where('request_id', self::getRequestId())->update(['is_completed' => YES]);
        //LogTrace::where('request_id', self::getRequestId())->update(['is_completed' => YES]);
@@ -117,8 +116,7 @@ class LogTraceHandler


        container(LogTraceQueue::class)->addToQueue([
        container(LogTraceQueue::class)->addToQueue([
            'request_id'=>self::getRequestId($isInAsyncCoroutine),
            'request_id'=>self::getRequestId($isInAsyncCoroutine),
            'process_info'=>$logInfo,
            'process_info'=>$logInfo
            'is_completed'=>NO
        ]);
        ]);
//        $log = LogTrace::where('request_id', self::getRequestId())->first();
//        $log = LogTrace::where('request_id', self::getRequestId())->first();
//        if(empty($log)) return ;
//        if(empty($log)) return ;
+9 −4
Original line number Original line Diff line number Diff line
@@ -22,11 +22,13 @@ class LogTraceQueue extends RedisQueueBatchHandler
    function batchDeal($dataArr)
    function batchDeal($dataArr)
    {
    {
        $updateArr = [];
        $updateArr = [];
        foreach ($dataArr as $arr){
        $updateMarkComplete = [];


            $updateArr[$arr['request_id']]['request_id'] = $arr['request_id'];
        foreach ($dataArr as $arr){
            $updateArr[$arr['request_id']]['is_completed'] = $arr['is_completed'];


            if(isset($arr['is_completed'])&&$arr['is_completed']==YES){
                $updateMarkComplete[]= $arr['request_id'] ;continue;
            }
            $process_info = isset($updateArr[$arr['request_id']]['process_info'])?
            $process_info = isset($updateArr[$arr['request_id']]['process_info'])?
                             $updateArr[$arr['request_id']]['process_info']:'';
                             $updateArr[$arr['request_id']]['process_info']:'';


@@ -49,7 +51,10 @@ class LogTraceQueue extends RedisQueueBatchHandler
            return $item;
            return $item;
        },$updateArr);
        },$updateArr);



        //批量更新
        if(!empty($updateMarkComplete)){
            LogTrace::whereIn('request_id',$updateMarkComplete)->update(['is_completed'=>YES]);
        }
        LogTrace::getModel()->batchUpdateByField(array_values($updateArr),'request_id');
        LogTrace::getModel()->batchUpdateByField(array_values($updateArr),'request_id');
    }
    }