34 lines
840 B
Python
34 lines
840 B
Python
# main.py
|
|
|
|
import asyncio
|
|
import uvicorn
|
|
from entrypoint.init_db import init_db
|
|
|
|
from backend.backend_domains.main import app as fastapi_app
|
|
|
|
async def main_async():
|
|
# Inicia tareas de fondo controladas desde aquí
|
|
print("🔄 Lanzando tareas en segundo plano...")
|
|
tareas = []
|
|
|
|
# Configura y lanza el servidor FastAPI
|
|
print("🚀 Lanzando servidor FastAPI...")
|
|
config = uvicorn.Config(app=fastapi_app, host="0.0.0.0", port=8000, reload=True)
|
|
server = uvicorn.Server(config)
|
|
|
|
# Ejecuta servidor (bloqueante)
|
|
await server.serve()
|
|
|
|
# Cancela tareas si se cae el servidor
|
|
for task in tareas:
|
|
task.cancel()
|
|
|
|
def main():
|
|
print("🛠️ Inicializando base de datos...")
|
|
init_db()
|
|
|
|
print("✅ Iniciando sistema...")
|
|
asyncio.run(main_async())
|
|
|
|
if __name__ == "__main__":
|
|
main() |