From 1f7c7026fe1a92c4fb5e44f2f544f7283c70e309 Mon Sep 17 00:00:00 2001 From: Farid Date: Mon, 8 Aug 2022 22:18:41 +0430 Subject: [PATCH] Decrease unnecessary database hits (#587) --- silk/collector.py | 2 -- silk/middleware.py | 3 +-- silk/model_factory.py | 3 ++- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/silk/collector.py b/silk/collector.py index fff5755b..b26fa5a0 100644 --- a/silk/collector.py +++ b/silk/collector.py @@ -126,7 +126,6 @@ def _record_meta_profiling(self): query_time = sum(_time_taken(x['start_time'], x['end_time']) for _, x in self.silk_queries.items()) self.request.meta_num_queries = num_queries self.request.meta_time_spent_queries = query_time - self.request.save() def stop_python_profiler(self): if getattr(self.local, 'pythonprofiler', None): @@ -147,7 +146,6 @@ def finalise(self): with open(self.request.prof_file.storage.path(file_name), 'w+b') as f: ps.dump_stats(f.name) self.request.prof_file = f.name - self.request.save() sql_queries = [] for identifier, query in self.queries.items(): diff --git a/silk/middleware.py b/silk/middleware.py index 8c86e527..2bbc1049 100644 --- a/silk/middleware.py +++ b/silk/middleware.py @@ -128,8 +128,7 @@ def _process_response(self, request, response): collector.stop_python_profiler() silk_request = collector.request if silk_request: - silk_response = ResponseModelFactory(response).construct_response_model() - silk_response.save() + ResponseModelFactory(response).construct_response_model() silk_request.end_time = timezone.now() collector.finalise() else: diff --git a/silk/model_factory.py b/silk/model_factory.py index 85faeca1..e80b9e63 100644 --- a/silk/model_factory.py +++ b/silk/model_factory.py @@ -330,7 +330,7 @@ def construct_response_model(self): header, val = k, v finally: headers[header] = val - silky_response = models.Response.objects.create( + silky_response = models.Response( request_id=self.request.id, status_code=self.response.status_code, encoded_headers=json.dumps(headers, ensure_ascii=SilkyConfig().SILKY_JSON_ENSURE_ASCII), @@ -342,4 +342,5 @@ def construct_response_model(self): except TypeError: raw_body = base64.b64encode(content.encode('utf-8')) silky_response.raw_body = raw_body.decode('ascii') + silky_response.save() return silky_response