namespace OSS.Tools.TimerJob
{
///
/// 任务基类
/// 如果执行时间过长,重复触发时 当前任务还在进行中,则不做任何处理
///
public abstract class BaseJobExecutor : Internal_BaseExecutor, IJobExecutor
{
///
/// 任务名称
///
public string JobName { get; protected set; }
///
/// 列表任务执行者
///
protected BaseJobExecutor(string jobName)
{
JobName = jobName;
}
#region 重写父类方法
///
internal override Task InternalStartJob(CancellationToken cancellationToken)
{
return OnStarting(cancellationToken);
}
///
internal override Task InternalStopJob(CancellationToken cancellationToken)
{
return OnStopping(cancellationToken);
}
#endregion
#region 扩展方法
///
/// 任务执行
///
protected abstract Task OnStarting(CancellationToken cancellationToken);
///
/// 任务结束
///
protected virtual Task OnStopping(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
#endregion
}
}