import asyncio
import os

from sqlalchemy import text
from sqlalchemy.ext.asyncio import create_async_engine

DB_URL = (
  f"mariadb+mariadbconnector_async://"
  f"{os.getenv('DB_USER', 'test')}:{os.getenv('DB_PASSWORD', 'password')}"
  f"@{os.getenv('DB_HOST', 'db')}:{os.getenv('DB_PORT', '3306')}"
  f"/{os.getenv('DB_NAME', 'testdb')}"
)

engine = create_async_engine(DB_URL, pool_size=5)


async def main():
  print("Starting ...", flush=True)

  for _ in range(5):
    async with engine.connect() as conn:
      await conn.execute(text("SELECT 1"))

  print(f"Pool populated with idle connections. PID: {os.getpid()}", flush=True)
  await asyncio.sleep(60)

asyncio.run(main())
