public void AddTask(SimpleTimerTaskInfo taskInfo) { var job = BuildTask(taskInfo) .Build(); var trigger = BuildTrigger(taskInfo) .WithSimpleSchedule(s => s .WithIntervalInSeconds(taskInfo.RepeatInterval) .WithRepeatCount(taskInfo.RepeatCount)) .Build(); _Scheduler.ScheduleJob(job, trigger); }
public IEnumerable <TimerTaskRunInfo> GetTaskRunInfo() { var group = _Scheduler.GetJobKeys(null); var result = group.Select(_Scheduler.GetJobDetail) .Select(item => { var runInfo = new TimerTaskRunInfo(); var trigger = _Scheduler.GetTriggersOfJob(item.Key).FirstOrDefault(); if (trigger is ISimpleTrigger) { var simpleTaskInfo = new SimpleTimerTaskInfo(); simpleTaskInfo.RepeatCount = ((ISimpleTrigger)trigger).RepeatCount; simpleTaskInfo.RepeatInterval = (int)((ISimpleTrigger)trigger).RepeatInterval.TotalSeconds; runInfo.FireTimes = ((ISimpleTrigger)trigger).TimesTriggered; runInfo.TaskInfo = simpleTaskInfo; } else if (trigger is ICronTrigger) { var cronTaskInfo = new CronTimerTaskInfo(); cronTaskInfo.Cron = ((ICronTrigger)trigger).CronExpressionString; runInfo.TaskInfo = cronTaskInfo; } if (trigger is ITrigger && runInfo.TaskInfo != null) { var taskInfo = runInfo.TaskInfo; taskInfo.Key = item.Key.Name; taskInfo.Group = item.Key.Group; taskInfo.Desc = item.Description; taskInfo.StartTime = trigger.StartTimeUtc.LocalDateTime; taskInfo.EndTime = trigger.EndTimeUtc?.LocalDateTime; runInfo.FinalFireTime = trigger.GetPreviousFireTimeUtc()?.LocalDateTime; runInfo.NextFireTime = trigger.GetNextFireTimeUtc()?.LocalDateTime; } return(runInfo); }) .ToList(); return(result); }
public void AddTask(SimpleTimerTaskInfo taskInfo) { _QuartzScheduler.AddTask(taskInfo); }