• WorkerService+Quartz


    WorkerService真的太好用了,比WindowsService好用太多!爱了-3-

    下面来记录一下步骤

    1.创建WorkerService

     创建好之后,结构如下

     Program:项目入口

     Worker:自带例子

    2.在NuGet下载Quartz包(Quartz.Extensions.Hosting)

     3.创建一个任务类( 继承Quartz中的IJob)

     

    4.配置执行任务的时间表达式

     每天早上11点31分执行任务

    5.关联任务

                        services.AddQuartz(q =>
                        {
                            q.UseMicrosoftDependencyInjectionScopedJobFactory();
                            //获取任务调度时间表达式
                            var jobKey = new JobKey("TestWorker");
                            var jobCronSchedule = hostContext.Configuration["Quartz:TestWorkerCron"];
                            //判断时间表达式是否存在
                            if (string.IsNullOrEmpty(jobCronSchedule))
                            {
                                throw new Exception($"No Quartz.NET Cron schedule found for job in configuration at configKey");
                            }
                            //在DI容器中注册任务
                            q.AddJob<TestWorker>(opts => opts.WithIdentity(jobKey));
                            //为任务添加触发器
                            q.AddTrigger(opts => opts
                                .ForJob(jobKey) //触发器链接到TestWorker
                                .WithIdentity("TestWorker-trigger") //为触发器命名
                               .WithCronSchedule(jobCronSchedule)); //使用配置中的时间表达式
                        });
                        services.AddQuartzHostedService(q => q.WaitForJobsToComplete = true);

    到这一步已经完成了,直接跑起来就可以了。 它是一个控制台程序。

    如果不想要控制台程序,那么接着看,设为Windows服务。

    6.在NuGet下载包(Microsoft.Extensions.Hosting.WindowsServices)

     7.设置Windows服务

     .UseWindowsService()

    tip:如果使用服务,不要用logger!!!logger仅是控制台程序时使用的!!!

    8.发布Windows服务

    首先,以管理员身份运行cmd

    -----------------------------------------cmd命令--------------------------------------------
    创建服务
    sc.exe create 服务名称 binPath=Windows服务所在的全路径(例如:D:其它TestWorkerServiceTestWorkerServiceinDebug et5.0TestWorkerService.exe)
    启动服务
    sc.exe start 服务名称
    停用服务
    sc.exe stop 服务名称
    删除服务
    sc.exe delete 服务名称

  • 相关阅读:
    Jenkins知识地图
    PageObject&PageFactory
    robot framework-databaselibaray库使用(python)
    robot framework环境搭建
    使用instantclient_11_2 和PL/SQL Developer工具包连接oracle 11g远程数据库(转)
    (转)pip和easy_install使用方式
    图解:如何在LINUX中安装VM-Tools
    ANT简明教程[转载]
    Linux常用命令
    oracle数据分组
  • 原文地址:https://www.cnblogs.com/MuZiLily/p/15474903.html
Copyright © 2020-2023  润新知