Commit eacad5b4 authored by 张晓彤's avatar 张晓彤

改进 redis 写入策略

parent 72525d10
...@@ -120,6 +120,8 @@ class DispatchSubmission: ...@@ -120,6 +120,8 @@ class DispatchSubmission:
self.logger.error(es) self.logger.error(es)
if task in [0, 1, 2]: # 卡车空载或在装载区出场前, 可变更卸载目的地 if task in [0, 1, 2]: # 卡车空载或在装载区出场前, 可变更卸载目的地
# 查询车辆相关派车计划
try: try:
item = ( item = (
session_mysql.query(DispatchSetting) session_mysql.query(DispatchSetting)
...@@ -130,8 +132,9 @@ class DispatchSubmission: ...@@ -130,8 +132,9 @@ class DispatchSubmission:
group_id=group_id, group_id=group_id,
isdeleted=0, ).first()) isdeleted=0, ).first())
if (item is None) or (dispatch_seq[0] is None): if item is None:
raise Exception("调度计划表与实时监控不匹配") raise Exception("调度计划配置异常")
except Exception as es: except Exception as es:
self.logger.error(es) self.logger.error(es)
item = ( item = (
...@@ -139,11 +142,21 @@ class DispatchSubmission: ...@@ -139,11 +142,21 @@ class DispatchSubmission:
.filter_by(truck_id=truck_id, .filter_by(truck_id=truck_id,
# group_id=group_id, # group_id=group_id,
isdeleted=0, ).first()) isdeleted=0, ).first())
# 调度目的地写入
try: try:
if dispatch_seq[0] is None:
raise Exception("调度计划表与实时监控不匹配")
record["dumpId"] = DispatchInfo.unload_area_dump_dict[dispatch_seq[1]]
except Exception as es:
record["dumpId"] = item.dump_id
self.logger.error(es)
# 其余调度信息写入
try:
record["dispatchId"] = item.id record["dispatchId"] = item.id
record["exactorId"] = item.exactor_id record["exactorId"] = item.exactor_id
record["dumpId"] = DispatchInfo.unload_area_dump_dict[dispatch_seq[1]] # record["dumpId"] = DispatchInfo.unload_area_dump_dict[dispatch_seq[1]]
record["loadAreaId"] = item.load_area_id record["loadAreaId"] = item.load_area_id
record["unloadAreaId"] = item.unload_area_id record["unloadAreaId"] = item.unload_area_id
record["groupId"] = group_id record["groupId"] = group_id
...@@ -153,13 +166,16 @@ class DispatchSubmission: ...@@ -153,13 +166,16 @@ class DispatchSubmission:
record["groupName"] = DispatchInfo.group_name[group_id] record["groupName"] = DispatchInfo.group_name[group_id]
self.logger.info(f'redis 注入 {record}') self.logger.info(f'redis 注入 {record}')
redis5.set(truck_id, str(json.dumps(record)))
except Exception as es: except Exception as es:
self.logger.error("调度结果写入异常-矿卡空载") self.logger.error("调度结果写入异常-矿卡空载")
self.logger.error(es)
finally:
redis5.set(truck_id, str(json.dumps(record)))
elif task in [3, 4, 5]: # 卡车重载或在卸载区出场前, 可变更装载目的地 elif task in [3, 4, 5]: # 卡车重载或在卸载区出场前, 可变更装载目的地
try:
# 查询车辆相关派车计划
try:
item = ( item = (
session_mysql.query(DispatchSetting) session_mysql.query(DispatchSetting)
.filter_by( .filter_by(
...@@ -168,8 +184,8 @@ class DispatchSubmission: ...@@ -168,8 +184,8 @@ class DispatchSubmission:
truck_id=truck_id, truck_id=truck_id,
group_id=group_id, group_id=group_id,
isdeleted=0, ).first()) isdeleted=0, ).first())
if (item is None) or (dispatch_seq[0] is None): if item is None:
raise Exception("调度计划表与实时监控不匹配") raise Exception("调度计划配置异常")
except Exception as es: except Exception as es:
self.logger.error(es) self.logger.error(es)
item = ( item = (
...@@ -177,9 +193,20 @@ class DispatchSubmission: ...@@ -177,9 +193,20 @@ class DispatchSubmission:
.filter_by(truck_id=truck_id, .filter_by(truck_id=truck_id,
# group_id=group_id, # group_id=group_id,
isdeleted=0, ).first()) isdeleted=0, ).first())
# 调度目的地写入
try: try:
record["dispatchId"] = item.id if dispatch_seq[0] is None:
raise Exception("调度计划表与实时监控不匹配")
record["exactorId"] = dispatch_seq[0] record["exactorId"] = dispatch_seq[0]
except Exception as es:
record["exactorId"] = item.exactor_id
self.logger.error(es)
# 其余调度信息写入
try:
record["dispatchId"] = item.id
# record["exactorId"] = dispatch_seq[0]
record["dumpId"] = item.dump_id record["dumpId"] = item.dump_id
record["loadAreaId"] = item.load_area_id record["loadAreaId"] = item.load_area_id
record["unloadAreaId"] = item.unload_area_id record["unloadAreaId"] = item.unload_area_id
...@@ -190,12 +217,15 @@ class DispatchSubmission: ...@@ -190,12 +217,15 @@ class DispatchSubmission:
record["groupName"] = DispatchInfo.group_name[group_id] record["groupName"] = DispatchInfo.group_name[group_id]
self.logger.info(f'redis 注入 {record}') self.logger.info(f'redis 注入 {record}')
redis5.set(truck_id, str(json.dumps(record)))
except Exception as es: except Exception as es:
self.logger.error("调度结果写入异常-矿卡重载") self.logger.error("调度结果写入异常-矿卡重载")
finally:
redis5.set(truck_id, str(json.dumps(record)))
elif task == -2: elif task == -2:
try: try:
# 查询车辆相关派车计划
try: try:
item = ( item = (
session_mysql.query(DispatchSetting) session_mysql.query(DispatchSetting)
...@@ -204,15 +234,8 @@ class DispatchSubmission: ...@@ -204,15 +234,8 @@ class DispatchSubmission:
truck_id=truck_id, truck_id=truck_id,
group_id=group_id, group_id=group_id,
isdeleted=0).first()) isdeleted=0).first())
if item is None:
if (item is None) or (dispatch_seq[0] is None): raise Exception("调度计划配置异常")
raise Exception("调度计划表与实时监控不匹配")
# self.logger.info(dispatch_seq[1])
# self.logger.info(DeviceMap.excavator_index_to_uuid_dict[dispatch_seq[1]])
# print("item")
# print(item.id, item.truck_id, item.exactor_id, item.dump_id)
except Exception as es: except Exception as es:
self.logger.error(es) self.logger.error(es)
item = ( item = (
...@@ -221,10 +244,18 @@ class DispatchSubmission: ...@@ -221,10 +244,18 @@ class DispatchSubmission:
# group_id=group_id, # group_id=group_id,
isdeleted=0).first()) isdeleted=0).first())
# 调度目的地写入
try: try:
if dispatch_seq[0] is None:
raise Exception("调度计划表与实时监控不匹配")
record["exactorId"] = dispatch_seq[0]
except Exception as es:
record["exactorId"] = item.exactor_id
self.logger.error(es)
try:
record["dispatchId"] = item.id record["dispatchId"] = item.id
record["exactorId"] = dispatch_seq[0] # record["exactorId"] = dispatch_seq[0]
record["dumpId"] = item.dump_id record["dumpId"] = item.dump_id
record["loadAreaId"] = item.load_area_id record["loadAreaId"] = item.load_area_id
record["unloadAreaId"] = item.unload_area_id record["unloadAreaId"] = item.unload_area_id
...@@ -238,12 +269,11 @@ class DispatchSubmission: ...@@ -238,12 +269,11 @@ class DispatchSubmission:
# record["createtime"] = datetime.now().strftime( # record["createtime"] = datetime.now().strftime(
# "%b %d, %Y %I:%M:%S %p") # "%b %d, %Y %I:%M:%S %p")
redis5.set(truck_id, str(json.dumps(record)))
except Exception as es: except Exception as es:
self.logger.error("调度结果写入异常-矿卡故障或备停区-redis写入异常") self.logger.error("调度结果写入异常-矿卡故障或备停区-redis写入异常")
self.logger.error(es) self.logger.error(es)
finally:
redis5.set(truck_id, str(json.dumps(record)))
except Exception as es: except Exception as es:
self.logger.error("调度结果写入异常-矿卡故障或备停区") self.logger.error("调度结果写入异常-矿卡故障或备停区")
......
...@@ -142,7 +142,6 @@ def process(dispatcher): ...@@ -142,7 +142,6 @@ def process(dispatcher):
# logger.info(DispatchInfo.dump_group_dict) # logger.info(DispatchInfo.dump_group_dict)
# logger.info(DispatchInfo.truck_group_dict) # logger.info(DispatchInfo.truck_group_dict)
# 调度生成 # 调度生成
dispatcher.period_update() dispatcher.period_update()
...@@ -157,6 +156,7 @@ def process(dispatcher): ...@@ -157,6 +156,7 @@ def process(dispatcher):
except Exception as es: except Exception as es:
logger.error("最外层异常捕获") logger.error("最外层异常捕获")
logger.error(es) logger.error(es)
direct2redis()
def perform(inc, dispatcher): def perform(inc, dispatcher):
......
...@@ -507,8 +507,11 @@ class DumpArea(Base): ...@@ -507,8 +507,11 @@ class DumpArea(Base):
Materials = Column(VARCHAR(36)) Materials = Column(VARCHAR(36))
Priority = Column(Integer) Priority = Column(Integer)
DumpEquipmentId = Column(VARCHAR(36)) DumpEquipmentId = Column(VARCHAR(36))
EntranceNodeId = Column(VARCHAR(50))
ExitNodeId = Column(VARCHAR(50))
Name = Column(VARCHAR(36))
def __init__(self, Id, BindList, UnloadAbililty, Disabled, Materials, Priority, DumpEquipmentId): def __init__(self, Id, BindList, UnloadAbililty, Disabled, Materials, Priority, DumpEquipmentId, EntranceNodeId,ExitNodeId, Name):
self.Id = Id self.Id = Id
self.BindList = BindList self.BindList = BindList
self.UnloadAbililty = UnloadAbililty self.UnloadAbililty = UnloadAbililty
...@@ -516,6 +519,9 @@ class DumpArea(Base): ...@@ -516,6 +519,9 @@ class DumpArea(Base):
self.Materials = Materials self.Materials = Materials
self.Priority = Priority self.Priority = Priority
self.DumpEquipmentId = DumpEquipmentId self.DumpEquipmentId = DumpEquipmentId
self.EntranceNodeId = EntranceNodeId
self.ExitNodeId = ExitNodeId
self.Name = Name
class DiggingWorkArea(Base): class DiggingWorkArea(Base):
...@@ -525,12 +531,16 @@ class DiggingWorkArea(Base): ...@@ -525,12 +531,16 @@ class DiggingWorkArea(Base):
Material = Column(VARCHAR(36)) Material = Column(VARCHAR(36))
ExactorId = Column(VARCHAR(36)) ExactorId = Column(VARCHAR(36))
ExactorUuid = Column(VARCHAR(50)) ExactorUuid = Column(VARCHAR(50))
EntranceNodeId = Column(VARCHAR(50))
ExitNodeId = Column(VARCHAR(50))
def __init__(self, Id, Material, ExactorId, ExactorUuid): def __init__(self, Id, Material, ExactorId, ExactorUuid, EntranceNodeId, ExitNodeId):
self.Id = Id self.Id = Id
self.Material = Material self.Material = Material
self.ExactorId = ExactorId self.ExactorId = ExactorId
self.ExactorUuid = ExactorUuid self.ExactorUuid = ExactorUuid
self.EntranceNodeId = EntranceNodeId
self.ExitNodeId = ExitNodeId
class DispatchRule(Base): class DispatchRule(Base):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment