def _get_connection_from_queue(self, initial_timeout, next_timeout):
try:
return self._queue.get(True, initial_timeout)
except Empty:
try:
self._lock.acquire()
if self._current_connections == self._max_connections:
raise ClientUnavailableError("Too many connections in use")
cb = self._make_connection()
return cb
except ClientUnavailableError as ex:
try:
return self._queue.get(True, next_timeout)
except Empty:
raise ex
finally:
self._lock.release()
评论列表
文章目录