Skip to content

Commit a26625a

Browse files
authored
Merge pull request liangliangyy#385 from kentio/src-master
refactor(midd): 优化blog app中间件逻辑
2 parents e4b4f8b + 39f381d commit a26625a

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

blog/middleware.py

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,36 @@
1414
"""
1515
import datetime
1616
import time
17+
import logging
1718
from ipware.ip import get_real_ip
1819
from DjangoBlog.utils import cache
1920
from blog.documents import ELASTICSEARCH_ENABLED, ElaspedTimeDocumentManager
2021

22+
logger = logging.getLogger(__name__)
23+
2124

2225
class OnlineMiddleware(object):
2326
def __init__(self, get_response=None):
2427
self.get_response = get_response
2528
super().__init__()
2629

2730
def __call__(self, request):
31+
''' page render time '''
2832
start_time = time.time()
2933
response = self.get_response(request)
30-
http_user_agent = request.META.get('HTTP_USER_AGENT', [])
31-
if 'Spider' in http_user_agent or 'spider' in http_user_agent:
32-
return response
33-
try:
34-
cast_time = time.time() - start_time
35-
if ELASTICSEARCH_ENABLED:
36-
time_taken = round((cast_time) * 1000, 2)
37-
url = request.path
38-
from django.utils import timezone
39-
40-
ElaspedTimeDocumentManager.create(url=url, time_taken=time_taken, log_datetime=timezone.now(),
41-
type='blog', useragent=http_user_agent)
42-
response.content = response.content.replace(b'<!!LOAD_TIMES!!>', str.encode(str(cast_time)[:5]))
43-
except:
44-
pass
34+
http_user_agent = request.META.get('HTTP_USER_AGENT', '')
35+
36+
if 'spider'.upper() not in http_user_agent.upper():
37+
try:
38+
cast_time = time.time() - start_time
39+
if ELASTICSEARCH_ENABLED:
40+
time_taken = round((cast_time) * 1000, 2)
41+
url = request.path
42+
from django.utils import timezone
43+
44+
ElaspedTimeDocumentManager.create(url=url, time_taken=time_taken, log_datetime=timezone.now(),
45+
type='blog', useragent=http_user_agent)
46+
response.content = response.content.replace(b'<!!LOAD_TIMES!!>', str.encode(str(cast_time)[:5]))
47+
except Exception as e:
48+
logger.error("Error OnlineMiddleware: %s" % e)
4549
return response

0 commit comments

Comments
 (0)