30 lines
837 B
Python
30 lines
837 B
Python
"""
|
|
[GeoIP] Initialization Service
|
|
Initialize the GeoIP database when the application starts
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import asyncio
|
|
|
|
from app.dependencies.geoip import get_geoip_helper
|
|
from app.log import logger
|
|
|
|
|
|
async def init_geoip():
|
|
"""
|
|
Asynchronously initialize the GeoIP database
|
|
"""
|
|
try:
|
|
geoip = get_geoip_helper()
|
|
logger.info("[GeoIP] Initializing GeoIP database...")
|
|
|
|
# Run the synchronous update method in a background thread
|
|
loop = asyncio.get_event_loop()
|
|
await loop.run_in_executor(None, geoip.update)
|
|
|
|
logger.info("[GeoIP] GeoIP database initialization completed")
|
|
except Exception as e:
|
|
logger.error(f"[GeoIP] GeoIP database initialization failed: {e}")
|
|
# Do not raise an exception to avoid blocking application startup
|