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 |   42 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/src/Bro.M071.Process/M071Process_MES.cs b/src/Bro.M071.Process/M071Process_MES.cs
index 43ff973..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
@@ -151,7 +152,25 @@
                 LogAsync(DateTime.Now, $"MES鍏ユ枡妫�娴�", JsonConvert.SerializeObject(paras));
             }
 
-            var result = IncomingCheckMethod?.Invoke(IncomingCheckObj, paras).ToString();
+            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");
@@ -210,7 +229,26 @@
                 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