From 64b5d3b0eab77341795cc7d6634ffa7cf60848e2 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期一, 16 十一月 2020 14:39:00 +0800 Subject: [PATCH] 2020-11-16 1.界面问题优化。2.上传和下载增加失败重新操作处理。 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Register/Databackup.cs | 81 ++++++++++++++++++++++++++++++++-------- 1 files changed, 64 insertions(+), 17 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/Databackup.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/Databackup.cs index 0aeab48..54cd864 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/Databackup.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/Databackup.cs @@ -890,7 +890,7 @@ mDownLoad.BackupFileName = file.BackupFileName; //var requestObj3 = new BackupDetailObj () { Id = file.Id }; var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (mDownLoad); - var revertObj3 = MainPage.RequestHttpsReturnByte (API.DownloadSomeDataBackup, requestJson3, false, mUrlHead); + var revertObj3 = MainPage.RequestHttpsReturnByteNew (API.DownloadSomeDataBackup, requestJson3, mUrlHead); if (revertObj3 != null) { IO.FileUtils.WriteFileByBytes (file.BackupFileName, revertObj3); @@ -915,6 +915,9 @@ } } + + private readonly object SendLocker = new object (); + private readonly object DownloadLocker = new object (); /// <summary> /// 澶氱嚎绋嬩笅杞� @@ -954,16 +957,44 @@ new System.Threading.Thread (() => { for (var j = startIndex1; j <= endIndex1; j++) { - var result = DownloadSomeDataBackup (mDownLoad, mUrlHead, mFileList [j]); - if (result) { - index++; - Application.RunOnMainThread (() => { - int pro = (int)(index * 1.0 / mFileList.Count * 100); - MainPage.Loading.Text = pro.ToString () + "%"; - }); - + try { + //濡傛灉澶辫触閲嶆柊涓嬭浇锛岄噸澶�3娆� + int errorCount = 0; + while (errorCount < 3) { + var result = DownloadSomeDataBackup (mDownLoad, mUrlHead, mFileList [j]); + if (result) { + lock (DownloadLocker) { + index++; + } + Application.RunOnMainThread (() => { + int pro = (int)(index * 1.0 / mFileList.Count * 100); + MainPage.Loading.Text = pro.ToString () + "%"; + }); + errorCount = 3; + } else { + errorCount++; + Utlis.WriteLine ($"涓嬭浇澶辫触锛� {mFileList [j].BackupFileName} 娆℃暟:{errorCount}"); + } + } + } catch { } finally { + lock (SendLocker) { + indexCount++; + } } - indexCount++; + + //var t1 = DateTime.Now.Second; + //var result = DownloadSomeDataBackup (mDownLoad, mUrlHead, mFileList [j]); + //if (result) { + // index++; + // Application.RunOnMainThread (() => { + // int pro = (int)(index * 1.0 / mFileList.Count * 100); + // MainPage.Loading.Text = pro.ToString () + "%"; + // }); + + //} else { + // Utlis.WriteLine ($"涓嬭浇澶辫触锛� {mFileList [j].BackupFileName} 鏃堕棿:{DateTime.Now.Second - t1}S"); + //} + //indexCount++; //Utlis.WriteLine ($"涓嬭浇绾跨▼锛歿id} 瀹屾垚index:{j} indexCount: {indexCount}"); } @@ -1160,14 +1191,30 @@ UploadHomeAppGatewaySubFilesObj mUpData = upData; mUpData.UploadSubFileLists = list; - var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (mUpData); - var revertObj2 = MainPage.RequestHttps (API.UploadHomeAppGatewaySubFiles, requestJson2, mUrlHead); - if (revertObj2.StateCode.ToUpper () == "SUCCESS") { - return true; - } else { - //鎻愮ず閿欒 - return false; + //var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (mUpData); + //var revertObj2 = MainPage.RequestHttps (API.UploadHomeAppGatewaySubFiles, requestJson2, mUrlHead); + //if (revertObj2.StateCode.ToUpper () == "SUCCESS") { + // return true; + //} else { + // //鎻愮ず閿欒 + // return false; + //} + + //2020-11-16 濡傛灉澶辫触閲嶆柊涓婁紶锛岄噸澶�3娆� + int errorCount = 0; + var result = false; + while (errorCount < 3) { + var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (mUpData); + var revertObj2 = MainPage.RequestHttps (API.UploadHomeAppGatewaySubFiles, requestJson2, mUrlHead, MainPage.TIME_OUT_20); + if (revertObj2.StateCode.ToUpper () == "SUCCESS") { + result = true; + errorCount = 3; + } else { + errorCount++; + //Utlis.WriteLine ($"涓婁紶澶辫触({startIndex1}-{endIndex1})锛屾鏁�:{errorCount}"); + } } + return result; } catch { return false; } -- Gitblit v1.8.0