コード例 #1
0
        /// <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);
        }
コード例 #2
0
 /// <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)));
 }