using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Common.Utils;
using Server.Utils;
using SqlSugar;
namespace Server.Services.DataMigration
{
///
/// 数据迁移进度监控服务
///
public class DataMigrationProgressService
{
private DataMigrationProgressService()
{
}
private static DataMigrationProgressService _migrationService;
private static object lockobj = new object();
///
/// 单例的属性
///
public static DataMigrationProgressService Instance
{
get
{
if (_migrationService == null)
{
lock (lockobj)
{
if (_migrationService == null)
{
_migrationService = new DataMigrationProgressService();
}
}
}
return _migrationService;
}
}
///
/// 迁移进度
///
private MigrationProgressState State { get; set; }
///
/// 开始记录
///
public void Start()
{
State = new MigrationProgressState();
this.State.StartDateTime = DateTime.Now;
this.State.State = 1;
}
///
/// 停止
///
public void Stop()
{
this.State.EndDateTime=DateTime.Now;
this.State.ElapsedTime = (this.State.EndDateTime - this.State.StartDateTime).TotalMinutes;
this.State.State = 2;
}
///
/// 获取当前迁移进度
///
///
public MigrationProgressState GetState()
{
return this.State;
}
}
///
/// 迁移状态
///
public class MigrationProgressState
{
///
/// 开始时间
///
public DateTime StartDateTime { get; set; }
///
/// 结束时间
///
public DateTime EndDateTime { get; set; }
///
/// 总耗时(分钟)
///
public double ElapsedTime { get; set; }
///
/// 处理状态 0未开始 1处理中 2完成
///
public int State { get; set; }
///
/// 日志
///
public List Logs { get; set; } = new List();
///
/// 添加日志
///
///
public void AddLog(string text)
{
if (Logs.Count > 10)
{
Logs.RemoveAt(0);
}
Logs.Add(text);
}
}
}