Commit 7574a3c7 authored by Liu lu's avatar Liu lu

日志批量更新优化

parent 73853af6
...@@ -4,6 +4,7 @@ namespace Meibuyu\Micro\Aspect; ...@@ -4,6 +4,7 @@ namespace Meibuyu\Micro\Aspect;
use Hyperf\Di\Annotation\Aspect; use Hyperf\Di\Annotation\Aspect;
use Hyperf\Di\Aop\AbstractAspect; use Hyperf\Di\Aop\AbstractAspect;
use Hyperf\Di\Aop\ProceedingJoinPoint; use Hyperf\Di\Aop\ProceedingJoinPoint;
use Hyperf\HttpServer\Contract\RequestInterface;
use Meibuyu\Micro\Annotation\LogTrace; use Meibuyu\Micro\Annotation\LogTrace;
use Meibuyu\Micro\Handler\LogTrace\LogTraceHandler; use Meibuyu\Micro\Handler\LogTrace\LogTraceHandler;
...@@ -25,9 +26,13 @@ class LogTraceAspect extends AbstractAspect ...@@ -25,9 +26,13 @@ class LogTraceAspect extends AbstractAspect
public function process(ProceedingJoinPoint $proceedingJoinPoint) public function process(ProceedingJoinPoint $proceedingJoinPoint)
{ {
$originParams = [
'called_params'=>$proceedingJoinPoint->getArguments(),
'http_params'=>make(RequestInterface::class)->all()
];
LogTraceHandler::createLogTrace( LogTraceHandler::createLogTrace(
$proceedingJoinPoint->className.'@'.$proceedingJoinPoint->methodName, $proceedingJoinPoint->className.'@'.$proceedingJoinPoint->methodName,
$proceedingJoinPoint->getArguments() $originParams
); );
$result = $proceedingJoinPoint->process(); $result = $proceedingJoinPoint->process();
LogTraceHandler::recordProcess('返回结果:'.json_encode($result)); LogTraceHandler::recordProcess('返回结果:'.json_encode($result));
......
...@@ -83,7 +83,6 @@ class LogTraceHandler ...@@ -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 ...@@ -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 ;
......
...@@ -22,10 +22,14 @@ class LogTraceQueue extends RedisQueueBatchHandler ...@@ -22,10 +22,14 @@ class LogTraceQueue extends RedisQueueBatchHandler
function batchDeal($dataArr) function batchDeal($dataArr)
{ {
$updateArr = []; $updateArr = [];
$updateMarkComplete = [];
foreach ($dataArr as $arr){ foreach ($dataArr as $arr){
if(isset($arr['is_completed'])&&$arr['is_completed']==YES){
$updateMarkComplete[]= $arr['request_id'] ;continue;
}
$updateArr[$arr['request_id']]['request_id'] = $arr['request_id']; $updateArr[$arr['request_id']]['request_id'] = $arr['request_id'];
$updateArr[$arr['request_id']]['is_completed'] = $arr['is_completed'];
$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 +53,10 @@ class LogTraceQueue extends RedisQueueBatchHandler ...@@ -49,7 +53,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');
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment