public void Execute(IJobExecutionContext context) { try { // 1. 获取Task 基本信息及 Task 配置的其他参数,任务启动时会读取配置文件节点的值传递过来 TaskModel task = QuartzHelper.GetTaskDetail(context); // 2. 记录Task 运行状态数据库 DbLogHelper.WriteRunInfo(task.TaskName + " 开始", task.TaskID.ToString(), ""); // 3. 开始执行相关任务 LogHelper.WriteLog(task.TaskName + ",当前系统时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); Thread.Sleep(9000); // 4. 记录Task 运行状态数据库 DbLogHelper.WriteRunInfo(task.TaskName + " 结束", task.TaskID.ToString(), "成功执行"); } catch (Exception ex) { JobExecutionException e2 = new JobExecutionException(ex); // 记录异常到数据库和 log 文件中。 DbLogHelper.WriteErrorInfo(ex); //true 是立即重新执行任务 e2.RefireImmediately = true; } }
/// <summary> /// 执行指定任务 /// </summary> /// <param name="context"></param> /// <param name="action"></param> public void ExecuteJob(IJobExecutionContext context, Action action) { try { // 1. 获取Task 基本信息及 Task 配置的其他参数,任务启动时会读取配置文件节点的值传递过来 Job task = QuartzHelper.GetTaskDetail(context); // 2. 记录Task 运行状态数据库 DbLogHelper.WriteRunInfo(task.JobName + " 开始", task.JobID.ToString(), ""); // 3. 开始执行相关任务 PerformanceTracer.Invoke(action, task.JobName);//监控并执行任务 // 4. 记录Task 运行状态数据库 DbLogHelper.WriteRunInfo(task.JobName + " 结束", task.JobID.ToString(), "成功执行"); } catch (Exception ex) { JobExecutionException e2 = new JobExecutionException(ex); //true 是立即重新执行任务 e2.RefireImmediately = true; // 记录异常到数据库和 log 文件中。 DbLogHelper.WriteErrorInfo(ex); } }