44 lines
991 B
Python
44 lines
991 B
Python
# 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())
|