Quartz.net获取正在执行的任务

版权声明:版权所有,需要请联系作者 https://blog.csdn.net/weixin_42930928/article/details/85387472

Quartz.NET的简单任务管理类:https://blog.csdn.net/weixin_42930928/article/details/85123007

1、首先获取Scheduler

var scheduler = QuartzSchedulerMgr.GetScheduler()

2、获取Scheduler中的JobGroupNames

var groups = scheduler.GetJobGroupNames();

3、for循环逐个对每个group进行处理,可以获取到job的名称信息,以及触发器trigger的下次执行时间等内容

foreach (var groupName in groups)
{
      foreach (var jobKey in  QuartzSchedulerMgr.GetScheduler().GetJobKeys(GroupMatcher<JobKey>.GroupEquals(groupName)))
      {
            string jobName = jobKey.Name;
            string jobGroup = jobKey.Group;
            var triggers = QuartzSchedulerMgr.GetScheduler().GetTriggersOfJob(jobKey);
            foreach (ITrigger trigger in triggers)
            {
                 trigger.GetNextFireTimeUtc();
            }             
      }
}

注:下次触发时间为UTC时间,我们这边是北京时间,需要进行转换

TimeZone.CurrentTimeZone.ToLocalTime(Convert.ToDateTime(triggers.ToList()[0].GetNextFireTimeUtc().ToString()))

猜你喜欢

转载自blog.csdn.net/weixin_42930928/article/details/85387472