# main.py / 启动入口 import asyncio import os from tasks.water_ammeter import SD import config from models.water_usage import WaterUsageModel from models.ammeter_usage import AmmeterUsageModel from scheduler import start_scheduler import logging import warnings import uvicorn warnings.filterwarnings("ignore", message="Glyph .* missing from font") logging.basicConfig( level=logging.INFO, format="%(asctime)s | %(levelname)-8s | %(name)s | %(message)s", ) # 确保数据库目录存在 db_dir = os.path.dirname(config.DB_PATH) if db_dir and not os.path.exists(db_dir): os.makedirs(db_dir) async def main(): await WaterUsageModel.create_table() await AmmeterUsageModel.create_table() start_scheduler() # await SD().push() # 🔥启动FastAPI Web服务 config = uvicorn.Config("app:app", host="0.0.0.0", port=8000, reload=True) server = uvicorn.Server(config) await server.serve() if __name__ == "__main__": asyncio.run(main())