以Windows服务方式运行.NET Core程序

 在之前一篇博客《

<?xml version="1.0" encoding="utf-8" ?><nlog xmlns="upload/201812101144513370.gif" alt="复制代码" style="margin: 0px; padding: 0px; max-width: 900px; height: auto; border: none !important;" />

还要注意的是这个文件必须复制到生成目录去以便程序运行时候能够加载到。

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
                    
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信