Commit 8cffae96 authored by 张晓彤's avatar 张晓彤

兜底策略改进

parent de7d84cb
...@@ -17,6 +17,7 @@ from equipment import DumpInfo, ExcavatorInfo, TruckInfo ...@@ -17,6 +17,7 @@ from equipment import DumpInfo, ExcavatorInfo, TruckInfo
from graph.topo_graph import Topo from graph.topo_graph import Topo
from settings import get_logger, redis5 from settings import get_logger, redis5
from tables import session_mysql, DispatchSetting from tables import session_mysql, DispatchSetting
from realtime_dispatch import truck_direct2redis
class DispatchSubmission: class DispatchSubmission:
...@@ -251,6 +252,8 @@ class DispatchSubmission: ...@@ -251,6 +252,8 @@ class DispatchSubmission:
except Exception as es: except Exception as es:
self.logger.error("group_dispatch_to_redis_error") self.logger.error("group_dispatch_to_redis_error")
self.logger.error(es) self.logger.error(es)
truck_direct2redis(truck_id)
def redis_format(truck_id, group_id, dispatch_id, item): def redis_format(truck_id, group_id, dispatch_id, item):
......
...@@ -73,17 +73,7 @@ def group_direct2redis(group: Group): ...@@ -73,17 +73,7 @@ def group_direct2redis(group: Group):
try: try:
for truck_id in group.group_trucks: for truck_id in group.group_trucks:
item = session_mysql.query(DispatchSetting).filter_by(truck_id=truck_id, isdeleted=0, ).first() truck_direct2redis(truck_id)
if item is None:
raise CoreException(101, "无可用派车计划")
record = {"truckId": item.truck_id, "dispatchId": item.id, "exactorId": item.exactor_id,
"dumpId": item.dump_id, "loadAreaId": item.load_area_id, "unloadAreaId": item.unload_area_id,
"groupId": item.group_id, "isdeleted": False, "isTemp": False, "haulFlag": -1,
"groupName": DispatchInfo.group_name[item.group_id]}
logger.info(f'写入redis调度结果: {record}')
# 写入redis
redis5.set(item.truck_id, str(json.dumps(record)))
except CoreException as ce: except CoreException as ce:
logger.error(ce) logger.error(ce)
...@@ -91,6 +81,23 @@ def group_direct2redis(group: Group): ...@@ -91,6 +81,23 @@ def group_direct2redis(group: Group):
session_mysql.rollback() session_mysql.rollback()
def truck_direct2redis(truck_id):
"""
根据车辆直接读取数据库写入redis
:return: None
"""
item = session_mysql.query(DispatchSetting).filter_by(truck_id=truck_id, isdeleted=0, ).first()
if item is None:
raise CoreException(101, "无可用派车计划")
record = {"truckId": item.truck_id, "dispatchId": item.id, "exactorId": item.exactor_id,
"dumpId": item.dump_id, "loadAreaId": item.load_area_id, "unloadAreaId": item.unload_area_id,
"groupId": item.group_id, "isdeleted": False, "isTemp": False, "haulFlag": -1,
"groupName": DispatchInfo.group_name[item.group_id]}
logger.info(f'写入redis调度结果: {record}')
# 写入redis
redis5.set(item.truck_id, str(json.dumps(record)))
def process(dispatcher): def process(dispatcher):
""" """
周期调度进程 周期调度进程
......
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