Пример #1
0
        /// <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);
            }
        }