/// <summary> /// 获取所有的作业 /// </summary> /// <param name="schedulerFactory"></param> /// <returns></returns> public static async Task <List <TaskOptions> > GetJobs(this ISchedulerFactory schedulerFactory) { List <TaskOptions> list = new List <TaskOptions>(); try { IScheduler _scheduler = await schedulerFactory.GetScheduler(); var groups = await _scheduler.GetJobGroupNames(); foreach (var groupName in groups) { foreach (var jobKey in await _scheduler.GetJobKeys(GroupMatcher <JobKey> .GroupEquals(groupName))) { TaskOptions taskOptions = _taskList.Where(x => x.GroupName == jobKey.Group && x.TaskName == jobKey.Name) .FirstOrDefault(); if (taskOptions == null) { continue; } var triggers = await _scheduler.GetTriggersOfJob(jobKey); foreach (ITrigger trigger in triggers) { DateTimeOffset?dateTimeOffset = trigger.GetPreviousFireTimeUtc(); if (dateTimeOffset != null) { taskOptions.LastRunTime = Convert.ToDateTime(dateTimeOffset.ToString()); } else { var runlog = FileQuartz.GetJobRunLog(taskOptions.TaskName, taskOptions.GroupName, 1, 2); if (runlog.Count > 0) { DateTime.TryParse(runlog[0].BeginDate, out DateTime lastRunTime); taskOptions.LastRunTime = lastRunTime; } } } list.Add(taskOptions); } } } catch (Exception ex) { FileQuartz.WriteStartLog("获取作业异常:" + ex.Message + ex.StackTrace); } return(list); }
/// <summary> /// 获取作业运行日志 /// </summary> /// <param name="taskName"></param> /// <param name="groupName"></param> /// <param name="page"></param> /// <returns></returns> public IActionResult GetRunLog(string taskName, string groupName, int page = 1) { return(Json(FileQuartz.GetJobRunLog(taskName, groupName, page))); }