queue_processors: Fix UnboundLocalError in QueueProcessingWorker.

consume_time_seconds wasn't properly defined at the beginning, so when
a BaseException that isn't a subclass of Exception is thrown, the
finally: block could be entered with it still undefined.
This commit is contained in:
Mateusz Mandera
2020-08-11 14:04:15 +02:00
committed by Tim Abbott
parent 4dc83a139c
commit a7039c815e

View File

@@ -212,14 +212,14 @@ class QueueProcessingWorker(ABC):
def do_consume(self, consume_func: Callable[[List[Dict[str, Any]]], None], def do_consume(self, consume_func: Callable[[List[Dict[str, Any]]], None],
events: List[Dict[str, Any]]) -> None: events: List[Dict[str, Any]]) -> None:
consume_time_seconds: Optional[float] = None
try: try:
time_start = time.time() time_start = time.time()
consume_func(events) consume_func(events)
consume_time_seconds: Optional[float] = time.time() - time_start consume_time_seconds = time.time() - time_start
self.consumed_since_last_emptied += len(events) self.consumed_since_last_emptied += len(events)
except Exception: except Exception:
self._handle_consume_exception(events) self._handle_consume_exception(events)
consume_time_seconds = None
finally: finally:
flush_per_request_caches() flush_per_request_caches()
reset_queries() reset_queries()