-
Notifications
You must be signed in to change notification settings - Fork 0
/
mysql_waiter.py
44 lines (39 loc) · 1.15 KB
/
mysql_waiter.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import os
import time
# noinspection PyUnresolvedReferences,PyPackageRequirements
from mysql.connector import connection
def wait_for_mysql(
user, password, host, port, database, max_retries, sleep_time
):
retry = 0
while retry < max_retries:
retry += 1
try:
connection.MySQLConnection(
user=user,
password=password,
host=host,
port=port,
database=database,
)
except Exception as exc:
print(
"Cannot connect to database {} time".format(retry), flush=True
)
if retry >= max_retries:
raise exc
time.sleep(sleep_time)
else:
break
if __name__ == "__main__":
host_ = os.getenv("MYSQL_HOST")
max_retries_, sleep_time_ = os.getenv("MYSQL_WAITER").split(":")
wait_for_mysql(
user=os.getenv("MYSQL_USER"),
password=os.getenv("MYSQL_PASSWORD"),
host=host_,
port=3306,
database=os.getenv("MYSQL_DATABASE"),
max_retries=int(max_retries_),
sleep_time=int(sleep_time_),
)