Я использую Python 3, и у меня есть этот цикл, который повторяется в этом списке -
self.settings["db"]["host"] = ["db-0", "db-1"]
Моя проблема в том, что он, кажется, отправляет return self.conn
первый вариант все время, db-0вместо того, чтобы пытаться использовать db-1
, у меня есть 2 db контейнерных сервера, и когда я останавливаю один из них - например, db-0, он должен попробовать psycopg2.connect
с db-1
def db_conn(self):
try:
for server in self.settings["db"]["host"]:
self.conn = psycopg2.connect(
host=server,
user=self.settings["db"]["user"],
password=self.settings["db"]["password"],
database=self.settings["db"]["database"],
connect_timeout=5,
)
return self.conn
except Exception:
pass
если цикл не удался, я не хочу, чтобы он return self.conn
, только если попытка сработала.
Я также попытался:
def db_conn(self):
try:
for server in self.settings["db"]["host"]:
self.conn = psycopg2.connect(
host=server,
user=self.settings["db"]["user"],
password=self.settings["db"]["password"],
database=self.settings["db"]["database"],
connect_timeout=5,
)
except Exception:
pass
return self.conn