namespace OSS.Tools.TimerJob;
///
/// 定时触发器
///
public class TimerTriggerSetting
{
///
/// 定时触发器
///
/// 开始执行时间
/// 间隔时间
/// 工作执行者(StartAsync-定时执行方法,StopAsync-定时器停止执行方法)
public TimerTriggerSetting(TimeSpan dueTime, TimeSpan periodTime, IJobExecutor jobExecutor)
{
DueTime = dueTime;
PeriodTime = periodTime;
JobExecutor = jobExecutor;
TriggerName = jobExecutor.JobName;
}
///
/// 定时触发器
///
/// 开始执行时间
/// 间隔时间
/// 定时执行方法
/// 定时器停止执行方法
/// 触发器名称
public TimerTriggerSetting(TimeSpan dueTime, TimeSpan periodTime, Func executingAction, Func? stopAction, string triggerName = "")
: this(dueTime, periodTime, new InternalTimerExecutor(triggerName, executingAction, stopAction))
{
}
///
/// 定时触发器
///
/// 开始执行时间
/// 间隔时间
/// 定时执行方法
/// 触发器名称
public TimerTriggerSetting(TimeSpan dueTime, TimeSpan periodTime, Func executingAction, string triggerName = "")
: this(dueTime, periodTime, executingAction, null, triggerName)
{
}
/// 到期开始执行时间
public TimeSpan DueTime { get; init; }
/// 间隔时间
public TimeSpan PeriodTime { get; init; }
/// 触发器名称
public string TriggerName { get; init; }
///
/// 工作执行者
///
public IJobExecutor JobExecutor { get; }
}