{LogInfo.BeginTime} 至 {LogInfo.EndTime} 【耗时】{LogInfo.ExecuteTime}{JsonConvert.SerializeObject(LogInfo)}
"); 76 | context.JobDetail.JobDataMap[Constant.LOGLIST] = logs; 77 | if (seconds >= warnTime)//如果请求超过20秒,记录警告日志 78 | { 79 | await WarningAsync(LogInfo.JobName, "耗时过长 - " + JsonConvert.SerializeObject(LogInfo), MailLevel); 80 | } 81 | } 82 | } 83 | 84 | public abstract Task NextExecute(IJobExecutionContext context); 85 | 86 | public async Task WarningAsync(string title, string msg, MailMessageEnum mailMessage) 87 | { 88 | Log.Logger.Warning(msg); 89 | if (mailMessage == MailMessageEnum.All) 90 | { 91 | await new SetingController().SendMail(new SendMailModel() 92 | { 93 | Title = $"任务调度-{title}【警告】消息", 94 | Content = msg 95 | }); 96 | } 97 | } 98 | 99 | public async Task InformationAsync(string title, string msg, MailMessageEnum mailMessage) 100 | { 101 | Log.Logger.Information(msg); 102 | if (mailMessage == MailMessageEnum.All) 103 | { 104 | await new SetingController().SendMail(new SendMailModel() 105 | { 106 | Title = $"任务调度-{title}消息", 107 | Content = msg 108 | }); 109 | } 110 | } 111 | 112 | public async Task ErrorAsync(string title, Exception ex, string msg, MailMessageEnum mailMessage) 113 | { 114 | Log.Logger.Error(ex, msg); 115 | if (mailMessage == MailMessageEnum.Err || mailMessage == MailMessageEnum.All) 116 | { 117 | await new SetingController().SendMail(new SendMailModel() 118 | { 119 | Title = $"任务调度-{title}【异常】消息", 120 | Content = msg 121 | }); 122 | } 123 | } 124 | } 125 | } 126 | -------------------------------------------------------------------------------- /QuartzNetAPI/Host/IJobs/MailJob.cs: -------------------------------------------------------------------------------- 1 | using Host.Common; 2 | using Host.IJobs.Model; 3 | using Quartz; 4 | using System.Threading.Tasks; 5 | 6 | namespace Host.IJobs 7 | { 8 | public class MailJob : JobBase6 | 方式1(docker使用) 7 | docker run -v /fileData/quartzuifile:/app/File --restart=unless-stopped --privileged=true --name quartzui -dp 5088:80 bennyzhao/quartzui 8 | 9 | 一行命令开箱即用,赶快体验下docker的便捷吧! 10 | 1、其中/fileData/quartzuifile为映射的文件地址,如SQLite数据库和log日志 11 | 2、5088为映射到主机的端口 12 | 3、直接在浏览器 ip:5088 即可访问。(注意防火墙是否打开了5088端口,或者在主机测试 curl 127.0.0.1:5088) 13 | 14 | 方式2(可直接通过源码部署到windows或linux平台) 15 | 16 | 源码地址:https://github.com/zhaopeiym/quartzui 17 | 18 | 问题交流:https://github.com/zhaopeiym/quartzui/issues 19 |20 |