using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using IStation.Model; using IStation.Untity; namespace IStation.Transfer { /// /// /// public class TransferHelper { private bool _cancel = false; private Task _task = null; /// /// /// public void Start() { if (_task != null) return; _task= Task.Run(() => { while (true) { if (_cancel) break; var model = MemoryQueueHelper.Take(); if (model != null) { var list = DataHelper.GetRecordList(model); var result = BulkInsert(list); LogHelper.Info($"{model.IP}:上传{result},采样点数:{model.Len}!"); } } }); } /// /// /// public void Cancel() { if (_task == null) return; _cancel = true; _task = null; } private bool BulkInsert(List list) { try { var url = Settings.Transfer.Expert.SDC800.TransferUrl + "/BulkInsert"; var data = JsonHelper.Object2Json(list); var responseText = HttpRequestHelper.Post(url, data); var result = JsonHelper.Json2Object(responseText); if (result.Code != 0) { throw new Exception(result.Message); } return result.Data; } catch (Exception ex) { LogHelper.Error(ex.Message); return false; } } } }