NewGaoKaoApi/New_College.Tasks/QuartzNet/Jobs/JobBase.cs

45 lines
1.7 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Quartz;
using System;
using System.Diagnostics;
using System.Threading.Tasks;
namespace New_College.Tasks
{
public class JobBase
{
/// <summary>
/// 执行指定任务
/// </summary>
/// <param name="context"></param>
/// <param name="action"></param>
public async Task<string> ExecuteJob(IJobExecutionContext context, Func<Task> func)
{
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();
await func();//执行任务
stopwatch.Stop();
jobHistory += $",【执行成功】,完成时间:{stopwatch.Elapsed.TotalMilliseconds.ToString("00")}毫秒";
//SerilogServer.WriteLog(context.Trigger.Key.Name.Replace("-", ""), $"{context.Trigger.Key.Name}定时任务运行一切OK", "任务结束");
}
catch (Exception ex)
{
JobExecutionException e2 = new JobExecutionException(ex);
//true 是立即重新执行任务
e2.RefireImmediately = true;
//SerilogServer.WriteErrorLog(context.Trigger.Key.Name.Replace("-", ""), $"{context.Trigger.Key.Name}任务运行异常", ex);
jobHistory += $",【执行失败】,异常日志:{ex.Message}";
}
Console.Out.WriteLine(jobHistory);
return jobHistory;
}
}
}