/// <summary> /// 执行指定任务 /// </summary> /// <param name="context"></param> /// <param name="action"></param> public void ExecuteJob(IJobExecutionContext context, Action action) { try { // 1. 获取Task 基本信息及 Task 配置的其他参数,任务启动时会读取配置文件节点的值传递过来 TaskModel task = QuartzHelper.GetTaskDetail(context); // 2. 记录Task 运行状态数据库 DbLogHelper.WriteRunInfo(task.TaskName + " 开始", task.TaskID.ToString(), ""); // 3. 开始执行相关任务 PerformanceTracer.Invoke(action, task.TaskName);//监控并执行任务 // 4. 记录Task 运行状态数据库 DbLogHelper.WriteRunInfo(task.TaskName + " 结束", task.TaskID.ToString(), "成功执行"); } catch (Exception ex) { JobExecutionException e2 = new JobExecutionException(ex); //true 是立即重新执行任务 e2.RefireImmediately = true; // 记录异常到数据库和 log 文件中。 DbLogHelper.WriteErrorInfo(ex); } }
/// <summary> /// 执行指定任务 /// </summary> /// <param name="context"></param> /// <param name="action"></param> public void ExecuteJob(IJobExecutionContext context, Action action) { try { //记录文件日志- 开始执行相关任务 LogHelper.ServerInfo(context.Trigger.Key.Name + "开始执行"); //记录数据库日志 DBLogHelper.WriteRunLog(context.Trigger.JobKey.Name, context.Trigger.JobKey.Group, "开始执行"); //开始执行 PerformanceTracer.Invoke(action, context.Trigger.JobKey.Name); //记录文件日志- 开始执行相关任务 LogHelper.ServerInfo(context.Trigger.Key.Name + "成功执行"); //记录数据库日志 DBLogHelper.WriteRunLog(context.Trigger.JobKey.Name, context.Trigger.JobKey.Group, "成功执行"); } catch (Exception ex) { JobExecutionException e2 = new JobExecutionException(ex); //true 是立即重新执行任务 e2.RefireImmediately = true; //记录文件日志- 开始执行相关任务 //logger.Warn(ex.Message); LogHelper.ServerError(e2.Message, ex); // 记录异常到数据库和 log 文件中。 DBLogHelper.WriteErrorLog(context.Trigger.JobKey.Name, context.Trigger.JobKey.Group, ex.Message); } }
public ActionResult Get() { List <SupplierEntity> list = new List <SupplierEntity>(); for (int i = 1; i < 8; i++) { list.Add(new SupplierEntity { AgentId = 1, AgentType = 2, ApplyAuthentication = 3, BaiduID = 4 }); } //return this.HandleSuccess("OK", list); try { throw new SFO2OException("错误测试"); } catch (Exception ex) { return(this.HandleError(ex)); } return(PerformanceTracer.Invoke(() => { //TODO:调用并且跟踪指定代码块的执行时间 return this.HandleError("错误测试"); }, "跟踪模块名称")); PerformanceTracer.Invoke(() => { //TODO:调用并且跟踪指定代码块的执行时间 }, "跟踪模块名称"); PerformanceTracer.InvokeAsync(() => { //TODO:通过异步方式调用的方式处理一些不太重要的工作 }, "跟踪模块名称"); //return this.HandleError("参数错误!"); }