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;
}
}
}
}