namespace MiaoYu.Core.Quartz.Jobs; /// /// 异步任务 /// public class MemoryJobAsync : QuartzJobBase, ITransientSelfDependency { private string text = string.Empty; public MemoryJobAsync(ILogger logger) : base(logger) { } protected override Task BeforeExecutionAsync(IServiceProvider serviceProvider, QuartzJobEntity quartzJobInfo) { var time = DateTime.Now; text = $"任务={quartzJobInfo.Name}|组={quartzJobInfo.GroupName}|{time:yyyy-MM-dd}|Time={time: HH:mm:ss:fff} -"; return base.BeforeExecutionAsync(serviceProvider, quartzJobInfo); } protected override Task OnSuccessAsync( IServiceProvider serviceProvider, QuartzJobEntity quartzJobInfo, object? result) { var timeConsuming = _stopwatch.ElapsedMilliseconds / 1000; _logger.LogInformation($"{text} {DateTime.Now.ToString("HH:mm:ss:fff")} 耗时={timeConsuming}s - {result}"); return base.OnSuccessAsync(serviceProvider, quartzJobInfo, result); } protected override Task OnExceptionAsync(IServiceProvider serviceProvider, QuartzJobEntity quartzJobInfo, Exception exception) { _logger.LogError(exception, $"{this.GetType().FullName} - {exception.Message}"); return base.OnExceptionAsync(serviceProvider, quartzJobInfo, exception); } }