Commit aabdd124 张东亮

添加出入库完成消息发送失败重发机制

1 个父辈 b1103d34
......@@ -51,7 +51,7 @@ namespace OnlineStore.DeviceLibrary
isInProcess = false;
}
}
ConcurrentQueue<posStatus> waitSendPosIds = new ConcurrentQueue<posStatus>();
/// <summary>
/// 获取整个料仓的状态
/// </summary>
......@@ -104,7 +104,15 @@ namespace OnlineStore.DeviceLibrary
}
lastPosId = "";
}
else if (storeStatus == StoreStatus.StoreOnline)
{
if (waitSendPosIds.TryDequeue(out posStatus pos))
{
boxStatus.data.Add(ParamDefine.posId, pos.PosId);
boxStatus.status = (int)pos.StoreStatus;
LogUtil.info($"发送未发送完成的消息:【{pos.PosId}】【{pos.StoreStatus}】");
}
}
//温湿度
//ASTemperateParam param = HumitureServer.GetTemperateParam(Config.Temperate_Serveraddress);
HumitureParam param = humBean.LastData;
......@@ -140,6 +148,28 @@ namespace OnlineStore.DeviceLibrary
if (resultOperation == null || (resultOperation.op <= 0))
{
//判断服务端是否返回出库操作
try
{
if (lineOperation.boxStatus.ContainsKey(1))
{
BoxStatus boxStatus = lineOperation.boxStatus[1];
if (boxStatus.data.ContainsKey(ParamDefine.posId))
{
string posid = boxStatus.data[ParamDefine.posId];
if (boxStatus.status.Equals((int)StoreStatus.InStoreEnd) || boxStatus.status.Equals((int)StoreStatus.OutStoreBoxEnd))
{
waitSendPosIds.Enqueue(new posStatus() { PosId = posid, StoreStatus = (StoreStatus)boxStatus.status });
LogUtil.error($"{posid}发送[{boxStatus.status}]失败,存入待发送列表");
}
}
}
}
catch (Exception e)
{
LogUtil.error("处理定时发送异常", e);
}
return;
}
if (resultOperation.op.Equals(1))
......@@ -248,4 +278,10 @@ namespace OnlineStore.DeviceLibrary
}
}
}
class posStatus
{
public string PosId { get; set; }
public StoreStatus StoreStatus { get; set; }
}
}
\ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!