public async Task <bool> AddAsync(QzRunLogEntity log) { #region mongo QzRunLogMoEntity mlog = new QzRunLogMoEntity(); mlog.AppId = log.AppId; mlog.TasksQzId = log.TasksQzId; mlog.LogText = log.LogText; mlog.LogTime = log.LogTime?.AddHours(8); mlog.Milliseconds = log.Milliseconds; mlog.LogType = (int)log.LogType; await _mongoRepository.InsertAsync(mlog); #endregion var result = false; var list = await _dbContext.QzRunLogs.Where(x => x.TasksQzId == log.TasksQzId && x.AppId == log.AppId).ToListAsync(); if (list.Count >= _logCount.ObjToInt()) { var oldLog = list.OrderBy(x => x.LogTime).First(); log.Id = oldLog.Id; _dbContext.Update(log); var y = await _dbContext.SaveChangesAsync(); result = y > 0; return(result); } await _dbContext.QzRunLogs.AddAsync(log); int x = await _dbContext.SaveChangesAsync(); result = x > 0; return(result); }
/// <summary> /// 执行指定任务 /// </summary> /// <param name="context"></param> /// <param name="action"></param> public async Task <string> ExecuteJob(IJobExecutionContext context, Func <Task <string> > func) { QzRunLogEntity qzlog = new QzRunLogEntity(); qzlog.TasksQzId = context.JobDetail.Key.Name.ObjToInt(); qzlog.AppId = context.JobDetail.Key.Group; qzlog.LogTime = DateTime.Now; qzlog.LogType = SysLogType.Normal; string jobHistory = $"【{DateTime.Now}】执行任务【Id:{context.JobDetail.Key.Name},组别:{context.JobDetail.Key.Group}】"; try { var s = context.Trigger.Key.Name; //记录Job时间 Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); var msg = await func();//执行任务 stopwatch.Stop(); jobHistory += $",【执行成功】,完成时间:{stopwatch.Elapsed.TotalMilliseconds.ToString("00")}毫秒"; //WriteLog(context.Trigger.Key.Name.Replace("-", ""), $"{context.Trigger.Key.Name}定时任务运行一切OK", "任务结束"); qzlog.LogText = $" 响应结果:[{msg}]"; qzlog.Milliseconds = $"{stopwatch.Elapsed.TotalMilliseconds.ToString("00")}毫秒"; } catch (Exception ex) { JobExecutionException e2 = new JobExecutionException(ex); //true 是立即重新执行任务 e2.RefireImmediately = true; //WriteErrorLog(context.Trigger.Key.Name.Replace("-", ""), $"{context.Trigger.Key.Name}任务运行异常", ex); jobHistory += $",【执行失败】,异常日志:{ex.Message}"; qzlog.LogText = $"【执行失败】,异常日志:{ex.Message}"; qzlog.LogType = SysLogType.Warn; } await _qzRunLogService.AddAsync(qzlog); Console.Out.WriteLine(jobHistory); return(jobHistory); }
public async Task <bool> AddAsync(QzRunLogEntity log) { var result = false; var list = await _dbContext.QzRunLogs.Where(x => x.TasksQzId == log.TasksQzId && x.AppId == log.AppId).ToListAsync(); if (list.Count >= _logCount.ObjToInt()) { var oldLog = list.OrderBy(x => x.LogTime).First(); log.Id = oldLog.Id; _dbContext.Update(log); var y = await _dbContext.SaveChangesAsync(); result = y > 0; return(result); } await _dbContext.QzRunLogs.AddAsync(log); int x = await _dbContext.SaveChangesAsync(); result = x > 0; return(result); }