Browse Source

[fix] timeout and response parsing order

Adam Tauber 10 years ago
parent
commit
789e46f1c8
1 changed files with 8 additions and 8 deletions
  1. 8
    8
      searx/search.py

+ 8
- 8
searx/search.py View File

69
     def process_callback(response, **kwargs):
69
     def process_callback(response, **kwargs):
70
         response.search_params = params
70
         response.search_params = params
71
 
71
 
72
+        timeout_overhead = 0.2  # seconds
73
+        search_duration = time() - params['started']
74
+        timeout_limit = engines[engine_name].timeout + timeout_overhead
75
+        if search_duration > timeout_limit:
76
+            engines[engine_name].stats['page_load_time'] += timeout_limit
77
+            engines[engine_name].stats['errors'] += 1
78
+            return
79
+
72
         # callback
80
         # callback
73
         try:
81
         try:
74
             search_results = callback(response)
82
             search_results = callback(response)
81
                 engine_name, str(e))
89
                 engine_name, str(e))
82
             return
90
             return
83
 
91
 
84
-        timeout_overhead = 0.2  # seconds
85
-        search_duration = time() - params['started']
86
-        timeout_limit = engines[engine_name].timeout + timeout_overhead
87
-        if search_duration > timeout_limit:
88
-            engines[engine_name].stats['page_load_time'] += timeout_limit
89
-            engines[engine_name].stats['errors'] += 1
90
-            return
91
-
92
         # add results
92
         # add results
93
         for result in search_results:
93
         for result in search_results:
94
             result['engine'] = engine_name
94
             result['engine'] = engine_name