wait_for_milvus.py 807 B

1234567891011121314151617181920212223242526272829303132
  1. from __future__ import annotations
  2. import time
  3. from pymilvus import MilvusClient
  4. from app.config import get_settings
  5. def main() -> None:
  6. settings = get_settings()
  7. kwargs = {"uri": settings.milvus_uri}
  8. token = settings.milvus_token.get_secret_value()
  9. if token:
  10. kwargs["token"] = token
  11. deadline = time.monotonic() + 120
  12. last_error: Exception | None = None
  13. while time.monotonic() < deadline:
  14. try:
  15. client = MilvusClient(**kwargs)
  16. client.list_collections()
  17. print(f"Milvus 已就绪:{settings.milvus_uri}")
  18. return
  19. except Exception as exc:
  20. last_error = exc
  21. time.sleep(2)
  22. raise SystemExit(f"Milvus 在 120 秒内未就绪:{last_error}")
  23. if __name__ == "__main__":
  24. main()