新增AI编程课程,引领技术教育新趋势
还要注意的是这个文件必须复制到生成目录去以便程序运行时候能够加载到。
5. 增加MyServiceJobFactory.cs
using Quartz; using Quartz.Spi; using System; namespace MyService { class MyServiceJobFactory : IJobFactory { protected readonly IServiceProvider _container; public MyServiceJobFactory(IServiceProvider container) { _container = container; } public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler) { return _container.GetService(bundle.JobDetail.JobType) as IJob; } public void ReturnJob(IJob job) { } } }
6. 增加PeriodLoggingJob.cs
using Microsoft.Extensions.Logging; using Quartz; using System; using System.Threading.Tasks; namespace MyService { class PeriodLoggingJob : IJob { private readonly ILogger<PeriodLoggingJob> _logger; public PeriodLoggingJob(ILogger<PeriodLoggingJob> logger, IServiceProvider serviceProvider) { _logger = logger; } private void DoLoggingJob() { _logger.LogInformation("logging..."); } public Task Execute(IJobExecutionContext context) { try { DoLoggingJob(); } catch (Exception ex) { //必须妥善处理好定时任务中发生的异常 _logger.LogError(ex, "执行定时任务发生意外错误"); } returnTask.CompletedTask; } } }
7. Program.cs的完整内容如下
using Microsoft.Extensions.DependencyInjection; using Microsof