添加消息类, socket接收到异常时会新建消息
This commit is contained in:
parent
2b2046f9b9
commit
f634449be8
@ -63,6 +63,7 @@ class Event(Base):
|
||||
images = relationship("Image", back_populates="event", cascade="all, delete", passive_deletes=True)
|
||||
temperatures = relationship("Temperature", back_populates="event", cascade="all, delete", passive_deletes=True)
|
||||
process_logs = relationship("ProcessLog", back_populates="event", cascade="all, delete", passive_deletes=True)
|
||||
messages = relationship("Message", back_populates="event", cascade="all, delete", passive_deletes=True)
|
||||
|
||||
|
||||
class Image(Base):
|
||||
@ -119,4 +120,29 @@ class ProcessLog(Base):
|
||||
__table_args__ = (
|
||||
Index('idx_log_event_id', 'eventId'),
|
||||
Index('idx_log_create_time', 'createTime'),
|
||||
)
|
||||
)
|
||||
|
||||
class Message(Base):
|
||||
__tablename__ = "message"
|
||||
|
||||
messageId = Column(BigInteger, primary_key=True, autoincrement=True, comment='消息ID')
|
||||
eventId = Column(String(50), ForeignKey('event.eventId', ondelete="CASCADE"), nullable=False, comment='关联事件ID')
|
||||
messageType = Column(String(5), comment='消息类型')
|
||||
eventType = Column(String(5), comment='事件类型')
|
||||
handle = Column(String(5), default='0', comment='是否处理' )
|
||||
remark = Column(String(500), comment='备注')
|
||||
createTime = Column(DateTime, default=datetime.now, nullable=False, comment='创建时间')
|
||||
updateTime = Column(DateTime, default=datetime.now, nullable=False, comment='更新时间')
|
||||
|
||||
event = relationship("Event", back_populates="messages")
|
||||
|
||||
__table_args__ = (
|
||||
Index('idx_message_event_id', 'eventId'),
|
||||
Index('idx_message_create_time', 'createTime'),
|
||||
Index('idx_message_update_time', 'updateTime'),
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ from typing import List, Dict, Any
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from app.core.database import async_session
|
||||
from app.models.models import Event, Image, Temperature
|
||||
from app.models.models import Event, Image, Temperature, Message
|
||||
from app.util.kangda import Kangda
|
||||
from app.util.baiduOcr import BadiduOcr
|
||||
|
||||
@ -190,6 +190,14 @@ class EventSyncService:
|
||||
status = status.value
|
||||
)
|
||||
session.add(temperature)
|
||||
|
||||
# 异常消息
|
||||
if status.value != 0:
|
||||
message = Message(
|
||||
eventId = image.eventId,
|
||||
messageType = status.value
|
||||
)
|
||||
session.add(message)
|
||||
try:
|
||||
await session.commit()
|
||||
except Exception as e:
|
||||
|
||||
@ -8,4 +8,4 @@ from app.services.event_sync_service import run_sync, run_sync_event
|
||||
if __name__ == "__main__":
|
||||
print("启动事件同步服务...")
|
||||
# asyncio.run(run_sync())
|
||||
asyncio.run(run_sync_event("07a9da561cd643328d5d43a33cce89bb"))
|
||||
asyncio.run(run_sync_event("3d685e6927724b9db47e52b544bf6103"))
|
||||
28
test_db.py
28
test_db.py
@ -13,7 +13,7 @@ async def init_db():
|
||||
async with engine.begin() as conn:
|
||||
|
||||
# 删除已注册的表
|
||||
await conn.run_sync(Base.metadata.drop_all)
|
||||
# await conn.run_sync(Base.metadata.drop_all)
|
||||
|
||||
# 创建表
|
||||
await conn.run_sync(Base.metadata.create_all)
|
||||
@ -187,25 +187,25 @@ async def main():
|
||||
await init_db()
|
||||
print("数据库初始化完成")
|
||||
|
||||
# 测试创建
|
||||
event_id = await test_create()
|
||||
# # 测试创建
|
||||
# event_id = await test_create()
|
||||
|
||||
# 测试读取
|
||||
await test_read(event_id)
|
||||
# # 测试读取
|
||||
# await test_read(event_id)
|
||||
|
||||
# 测试更新
|
||||
await test_update(event_id)
|
||||
# # 测试更新
|
||||
# await test_update(event_id)
|
||||
|
||||
# 测试读取更新后的数据
|
||||
await test_read(event_id)
|
||||
# # 测试读取更新后的数据
|
||||
# await test_read(event_id)
|
||||
|
||||
# 测试事务
|
||||
await test_transaction()
|
||||
# # 测试事务
|
||||
# await test_transaction()
|
||||
|
||||
# 测试删除
|
||||
await test_delete(event_id)
|
||||
# # 测试删除
|
||||
# await test_delete(event_id)
|
||||
|
||||
print("\n数据库测试完成")
|
||||
# print("\n数据库测试完成")
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Loading…
Reference in New Issue
Block a user