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
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public class TransferHelper
|
{
|
private bool _cancel = false;
|
private Task _task = null;
|
|
/// <summary>
|
///
|
/// </summary>
|
public void Start()
|
{
|
if (_task != null)
|
return;
|
_task= Task.Run(() => {
|
while (true)
|
{
|
if (_cancel)
|
break;
|
var model = MemoryQueueHelper<Model.BodyWave>.Take();
|
if (model != null)
|
{
|
var list = DataHelper.GetRecordList(model);
|
var result = BulkInsert(list);
|
LogHelper.Info($"{model.IP}:上传{result},采样点数:{model.Len}!");
|
}
|
}
|
});
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public void Cancel()
|
{
|
if (_task == null)
|
return;
|
_cancel = true;
|
_task = null;
|
}
|
|
private bool BulkInsert(List<VibrationRecord> 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<Result>(responseText);
|
if (result.Code != 0)
|
{
|
throw new Exception(result.Message);
|
}
|
return result.Data;
|
}
|
catch (Exception ex)
|
{
|
LogHelper.Error(ex.Message);
|
return false;
|
}
|
}
|
|
|
}
|
}
|