using New_College.Common.Helper; using New_College.IServices; using Quartz; using System; using System.Threading.Tasks; /// /// 这里要注意下,命名空间和程序集是一样的,不然反射不到 /// namespace New_College.Tasks { public class Job_Blogs_Quartz : JobBase, IJob { private readonly IBlogArticleServices _blogArticleServices; private readonly ITasksQzServices _tasksQzServices; public Job_Blogs_Quartz(IBlogArticleServices blogArticleServices, ITasksQzServices tasksQzServices) { _blogArticleServices = blogArticleServices; _tasksQzServices = tasksQzServices; } public async Task Execute(IJobExecutionContext context) { //var param = context.MergedJobDataMap; // 可以直接获取 JobDetail 的值 var jobKey = context.JobDetail.Key; var jobId = jobKey.Name; var executeLog = await ExecuteJob(context, async () => await Run(context, jobId.ObjToInt())); // 也可以通过数据库配置,获取传递过来的参数 JobDataMap data = context.JobDetail.JobDataMap; //int jobId = data.GetInt("JobParam"); //var model = await _tasksQzServices.QueryById(jobId); //if (model != null) //{ // model.RunTimes += 1; // model.Remark += $"{executeLog}
"; // await _tasksQzServices.Update(model); //} } public async Task Run(IJobExecutionContext context, int jobid) { var list = await _blogArticleServices.Query(); if (jobid > 0) { var model = await _tasksQzServices.QueryById(jobid); if (model != null) { model.RunTimes += 1; var separator = "
"; model.Remark = $"【{DateTime.Now}】执行任务【Id:{context.JobDetail.Key.Name},组别:{context.JobDetail.Key.Group}】【执行成功】{separator}" + string.Join(separator, StringHelper.GetTopDataBySeparator(model.Remark, separator, 9)); await _tasksQzServices.Update(model); } } await Console.Out.WriteLineAsync("博客总数量" + list.Count.ToString()); } } }