新增同步存储方法;新增run_server.py文件;修改默认的数据库连接方式;
This commit is contained in:
92
main.py
92
main.py
@@ -1,11 +1,17 @@
|
||||
import asyncio, os, io, json, time, pickle, redis, datetime, logging, threading, uvicorn, multiprocessing, asyncio, shutil, random
|
||||
import os
|
||||
import json
|
||||
import time
|
||||
import datetime
|
||||
import logging
|
||||
import threading
|
||||
import shutil
|
||||
import random
|
||||
|
||||
from typing import *
|
||||
from typing import List, Annotated, Optional, Union
|
||||
|
||||
from urllib.request import Request
|
||||
from xml.dom import minicompat
|
||||
from pydantic import BaseModel
|
||||
from starlette.responses import FileResponse, JSONResponse
|
||||
from starlette.middleware.base import BaseHTTPMiddleware
|
||||
from starlette.types import Receive
|
||||
|
||||
from fastapi import (
|
||||
FastAPI,
|
||||
File,
|
||||
@@ -13,47 +19,39 @@ from fastapi import (
|
||||
Response,
|
||||
status,
|
||||
Request,
|
||||
Body,
|
||||
HTTPException,
|
||||
Query,
|
||||
Depends,
|
||||
Header,
|
||||
)
|
||||
from fastapi.responses import PlainTextResponse
|
||||
from fastapi.middleware.gzip import GZipMiddleware
|
||||
from tjnetwork import *
|
||||
from multiprocessing import Value
|
||||
import uvicorn
|
||||
import msgpack
|
||||
from run_simulation import run_simulation, run_simulation_ex
|
||||
from online_Analysis import *
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from influxdb_client import (
|
||||
InfluxDBClient,
|
||||
BucketsApi,
|
||||
WriteApi,
|
||||
OrganizationsApi,
|
||||
Point,
|
||||
QueryApi,
|
||||
)
|
||||
from typing import List, Dict
|
||||
|
||||
from starlette.responses import FileResponse, JSONResponse
|
||||
from contextlib import asynccontextmanager
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from multiprocessing import Value
|
||||
|
||||
import redis
|
||||
import msgpack
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from dateutil import parser
|
||||
import influxdb_info
|
||||
|
||||
# 第三方/自定义模块
|
||||
import influxdb_api
|
||||
import timescaledb
|
||||
import py_linq
|
||||
import time_api
|
||||
import simulation
|
||||
import globals
|
||||
import os
|
||||
import logging
|
||||
import threading
|
||||
import time
|
||||
from logging.handlers import TimedRotatingFileHandler
|
||||
from fastapi import FastAPI, APIRouter, Depends, HTTPException, status, Request
|
||||
from fastapi.security import OAuth2PasswordBearer
|
||||
from fastapi import FastAPI, Depends, HTTPException, Header
|
||||
from typing import Annotated
|
||||
import project_info
|
||||
from timescaledb.database import db as tsdb
|
||||
from postgresql.database import db as pgdb
|
||||
from online_Analysis import *
|
||||
from tjnetwork import *
|
||||
|
||||
|
||||
JUNCTION = 0
|
||||
RESERVOIR = 1
|
||||
@@ -116,6 +114,25 @@ async def verify_token(authorization: Annotated[str, Header()] = None):
|
||||
# app = FastAPI(dependencies=[Depends(global_auth)])
|
||||
app = FastAPI()
|
||||
|
||||
|
||||
# 生命周期管理器
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
# 初始化数据库连接池
|
||||
tsdb.init_pool()
|
||||
pgdb.init_pool()
|
||||
|
||||
await tsdb.open()
|
||||
await pgdb.open()
|
||||
|
||||
yield
|
||||
# 清理资源
|
||||
tsdb.close()
|
||||
pgdb.close()
|
||||
|
||||
|
||||
app = FastAPI(lifespan=lifespan)
|
||||
|
||||
app.include_router(timescaledb.router)
|
||||
|
||||
access_tokens = []
|
||||
@@ -3466,9 +3483,11 @@ async def fastapi_run_simulation_manually_by_date(
|
||||
item["name"], base_date, item["start_time"], item["duration"]
|
||||
)
|
||||
)
|
||||
|
||||
thread.start()
|
||||
thread.join() # 等待线程完成
|
||||
|
||||
|
||||
return {"status": "success"}
|
||||
except Exception as e:
|
||||
return {"status": "error", "message": str(e)}
|
||||
@@ -4213,11 +4232,10 @@ async def get_dict(item: Item):
|
||||
if __name__ == "__main__":
|
||||
# uvicorn.run(app, host="0.0.0.0", port=8000)
|
||||
# url='http://127.0.0.1:8000/valve_close_analysis?network=beibeizone&start_time=2024-04-01T08:00:00Z&valve_IDs=GSD2307192058577780A3287D78&valve_IDs=GSD2307192058572E953B707226(S2)&duration=1800'
|
||||
# url='http://127.0.0.1:8000/burst_analysis?network=beibeizone&start_time=2024-04-01T08:00:00Z&burst_ID=ZBBGXSZW000001&duration=1800'
|
||||
url='http://127.0.0.1:8000/burst_analysis?network=beibeizone&start_time=2024-04-01T08:00:00Z&burst_ID=ZBBGXSZW000001&duration=1800'
|
||||
# url = "http://192.168.1.36:8000/queryallschemeallrecords/?schemename=Fangan0817114448&querydate=2025-08-13&schemetype=burst_Analysis"
|
||||
# response = Request.get(url)
|
||||
|
||||
# import requests
|
||||
import requests
|
||||
|
||||
# response = requests.get(url)
|
||||
print(get_all_scada_info("szh"))
|
||||
response = requests.get(url)
|
||||
|
||||
Reference in New Issue
Block a user