MCPcopy Create free account
hub / github.com/apache/cassandra-python-driver / run

Method run

cassandra/pool.py:274–302  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

272 self.scheduler.schedule(first_delay, self.run)
273
274 def run(self):
275 if self._cancelled:
276 return
277
278 conn = None
279 try:
280 conn = self.try_reconnect()
281 except Exception as exc:
282 try:
283 next_delay = next(self.schedule)
284 except StopIteration:
285 # the schedule has been exhausted
286 next_delay = None
287
288 # call on_exception for logging purposes even if next_delay is None
289 if self.on_exception(exc, next_delay):
290 if next_delay is None:
291 log.warning(
292 "Will not continue to retry reconnection attempts "
293 "due to an exhausted retry schedule")
294 else:
295 self.scheduler.schedule(next_delay, self.run)
296 else:
297 if not self._cancelled:
298 self.on_reconnection(conn)
299 self.callback(*(self.callback_args), **(self.callback_kwargs))
300 finally:
301 if conn:
302 conn.close()
303
304 def cancel(self):
305 self._cancelled = True

Callers

nothing calls this directly

Calls 6

try_reconnectMethod · 0.95
on_exceptionMethod · 0.95
on_reconnectionMethod · 0.95
scheduleMethod · 0.80
callbackMethod · 0.80
closeMethod · 0.45

Tested by

no test coverage detected