method(); $api[] = $request->path(); $logFileName = storage_path('logs/api-'.date("Y-m-d").".log"); $logFile = fopen($logFileName, "a"); if($logFile){ fputcsv($logFile, $api); fclose($logFile); } //实时监控 $apiPath = explode('/',$request->path()); if(count($apiPath)>=3 && $apiPath[2] !== 'api'){ $timeMinute = intval(time()/60); $timeSecond = time(); $apiName = $apiPath[2]; $this->UpdateCache("pref-m/all/{$timeMinute}",$delay); $this->UpdateCache("pref-m/{$apiName}/{$timeMinute}",$delay); $this->UpdateCache("pref-s/all/{$timeSecond}",$delay,30); $this->UpdateCache("pref-s/{$apiName}/{$timeSecond}",$delay,30); } } return $response; } private function UpdateCache($key,$delay,$expire=3600){ Redis::set($key."/count",Redis::get($key."/count",0)+1,$expire); Redis::expire($key."/count",$expire); Redis::set($key."/delay",Redis::get($key."/delay",0)+$delay,$expire); Redis::expire($key."/delay",$expire); } }