From ff7cab72419729ce2c5adc46350ef45d89a5d1e5 Mon Sep 17 00:00:00 2001 From: patrick.xu <patrick.xu@broconcentric.com> Date: 星期六, 24 七月 2021 10:31:41 +0800 Subject: [PATCH] MES动作添加异常捕捉和重试机制 --- src/Bro.M071.Process/M071Process_MES.cs | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 52 insertions(+), 5 deletions(-) diff --git a/src/Bro.M071.Process/M071Process_MES.cs b/src/Bro.M071.Process/M071Process_MES.cs index 7f63e68..28e399e 100644 --- a/src/Bro.M071.Process/M071Process_MES.cs +++ b/src/Bro.M071.Process/M071Process_MES.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Reflection; using System.Text; +using System.Threading; using System.Threading.Tasks; namespace Bro.M071.Process @@ -144,8 +145,32 @@ sw.Start(); //var result = _webApiHelper.dooPost(url, paraStr); - object[] paras = new object[] { barcode, Config.StationCode }; - var result = IncomingCheckMethod?.Invoke(IncomingCheckObj, paras).ToString(); + object[] paras = new object[] { barcode, Config.StationCode, Config.ProjectCode }; + + if (Config.IsEnableMESLog) + { + LogAsync(DateTime.Now, $"MES鍏ユ枡妫�娴�", JsonConvert.SerializeObject(paras)); + } + + string result = "-3"; + + int repeatTime = 3; + + do + { + try + { + result = IncomingCheckMethod?.Invoke(IncomingCheckObj, paras).ToString(); + } + catch (Exception ex) + { + LogAsync(DateTime.Now, $"{barcode}浜у搧鏉$爜妫�娴嬪紓甯�", ex.GetExceptionMessage()); + repeatTime--; + + Thread.Sleep(100); + result = "-3"; + } + } while (repeatTime > 0); var mesReturn = (MESIncomingCheckReturn)int.Parse(result); sw.Stop(); LogAsync(DateTime.Now, $"{barcode}浜у搧鏉$爜妫�娴嬶紝{result}|{mesReturn.ToString()}", $"鑰楁椂锛歿sw.ElapsedMilliseconds}ms"); @@ -190,7 +215,7 @@ Config.IsDisableMultipleCheckTimes, Config.ProjectCode, pMeasure.Barcode, - checkTime.ToString("yyyy-MM-dd HH:mm:ss"), + checkTime, Config.StationCode, pMeasure.PResult == "OK" ? "PASS" : "FAIL", Config.LineCode, @@ -199,9 +224,31 @@ GetNGKeys(pMeasure) }; - //LogAsync(DateTime.Now, $"{barcode}浜у搧妫�娴嬫暟鎹笂浼�", JsonConvert.SerializeObject(paras)); + if (Config.IsEnableMESLog) + { + LogAsync(DateTime.Now, $"{pMeasure.Barcode}浜у搧妫�娴嬫暟鎹笂浼�", JsonConvert.SerializeObject(paras)); + } - var result = DataUploadMethod?.Invoke(DataUploadObj, paras).ToString(); + string result = "-3"; + + int repeatTime = 3; + do + { + try + { + result = DataUploadMethod?.Invoke(DataUploadObj, paras).ToString(); + repeatTime = -1; + } + catch (Exception ex) + { + LogAsync(DateTime.Now, $"{barcode}浜у搧妫�娴嬫暟鎹笂浼犲紓甯�", ex.GetExceptionMessage()); + repeatTime--; + + Thread.Sleep(100); + result = "-3"; + } + } while (repeatTime > 0); + var mesReturn = (MESUploadReturn)int.Parse(result); sw.Stop(); LogAsync(DateTime.Now, $"{barcode}浜у搧妫�娴嬫暟鎹笂浼狅紝{result}|{mesReturn.ToString()}", $"鑰楁椂锛歿sw.ElapsedMilliseconds}ms"); -- Gitblit v1.8.0