You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.2 KiB
88 lines
2.2 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Euro.Transfer.Base
|
|
{
|
|
/// <summary>
|
|
/// 工作项
|
|
/// </summary>
|
|
public abstract class ServiceTask : ServiceBase
|
|
{
|
|
//配置对象
|
|
private ServiceConfig mConfigObject;
|
|
//下次运行时间
|
|
private DateTime mNextTime;
|
|
//任务是否在运行中
|
|
protected bool mIsRunning;
|
|
//初始化客戶端
|
|
public static HubTransfer hubClient = new HubTransfer();
|
|
|
|
/// <summary>
|
|
/// 构造函数
|
|
/// </summary>
|
|
public ServiceTask()
|
|
{
|
|
//变量初始化
|
|
this.mNextTime = DateTime.Now;
|
|
this.mIsRunning = false;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 配置对象
|
|
/// </summary>
|
|
public ServiceConfig ConfigObject
|
|
{
|
|
get { return this.mConfigObject; }
|
|
set { this.mConfigObject = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 开始工作
|
|
/// </summary>
|
|
public void StartJob()
|
|
{
|
|
if (this.mConfigObject != null && this.mNextTime != null)
|
|
{
|
|
if (this.mConfigObject.Enabled.ToLower() == "true")
|
|
{
|
|
if (DateTime.Now >= this.mNextTime)
|
|
{
|
|
if (!this.mIsRunning)
|
|
{
|
|
this.mNextTime = DateTime.Now.AddSeconds((double)this.mConfigObject.Interval);
|
|
this.Start();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 停止工作
|
|
/// </summary>
|
|
public void StopJob()
|
|
{
|
|
this.mConfigObject = null;
|
|
this.mNextTime = DateTime.Now;
|
|
this.mIsRunning = false;
|
|
this.Stop();
|
|
}
|
|
|
|
#region 子类必需实现的抽象成员
|
|
|
|
/// <summary>
|
|
/// 开始工作
|
|
/// </summary>
|
|
protected abstract void Start();
|
|
|
|
/// <summary>
|
|
/// 停止工作
|
|
/// </summary>
|
|
protected abstract void Stop();
|
|
|
|
#endregion
|
|
}
|
|
}
|