50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
import time
|
|
|
|
import pymysql
|
|
|
|
|
|
def check_oceanbase_ready() -> bool:
|
|
try:
|
|
connection = pymysql.connect(
|
|
host="localhost",
|
|
port=2881,
|
|
user="root",
|
|
password="difyai123456",
|
|
)
|
|
affected_rows = connection.query("SELECT 1")
|
|
return affected_rows == 1
|
|
except Exception as e:
|
|
print(f"Oceanbase is not ready. Exception: {e}")
|
|
return False
|
|
finally:
|
|
if connection:
|
|
connection.close()
|
|
|
|
|
|
def main():
|
|
max_attempts = 50
|
|
retry_interval_seconds = 2
|
|
is_oceanbase_ready = False
|
|
for attempt in range(max_attempts):
|
|
try:
|
|
is_oceanbase_ready = check_oceanbase_ready()
|
|
except Exception as e:
|
|
print(f"Oceanbase is not ready. Exception: {e}")
|
|
is_oceanbase_ready = False
|
|
|
|
if is_oceanbase_ready:
|
|
break
|
|
else:
|
|
print(f"Attempt {attempt + 1} failed, retry in {retry_interval_seconds} seconds...")
|
|
time.sleep(retry_interval_seconds)
|
|
|
|
if is_oceanbase_ready:
|
|
print("Oceanbase is ready.")
|
|
else:
|
|
print(f"Oceanbase is not ready after {max_attempts} attempting checks.")
|
|
exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|