zoukankan      html  css  js  c++  java
  • .NET Core 2.2使用最新版的Quartz.Net3.0.7 入门教程

    Quartz是什么?官网:http://www.quartz-scheduler.org

    Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。
    
    Quartz 可以与 J2EE 与 J2SE 应用程序相结合也可以单独使用。
    
    Quartz 允许程序开发人员根据时间的间隔来调度作业。
    
    Quartz 实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联

    Quartz.Net 是Quartz 的net实现 ,github:https://github.com/quartznet/quartznet

    在项目的开发过程中,难免会遇见后需要后台处理的任务,例如定时发送邮件通知、后台处理耗时的数据处理等,这个时候你就需要Quartz.Net了。
    
    Quartz.Net是纯净的,它是一个.Net程序集,是非常流行的Java作业调度系统Quartz的C#实现。
    
    Quartz.Net一款功能齐全的任务调度系统,从小型应用到大型企业级系统都能适用。功能齐全体现在触发器的多样性上面,即支持简单的定时器,也支持Cron表达式;即能执行重复的作业任务,也支持指定例外的日历;任务也可以是多样性的,只要继承IJob接口即可。
    
    对于小型应用,Quartz.Net可以集成到你的系统中,对于企业级系统,它提供了Routing支持,提供了Group来组织和管理任务,此外还有持久化、插件功能、负载均衡和故障迁移等满足不同应用场景的需要。

    实例:

    打开vs2017新建一个core的控制台项目,

     检查这个core版本是不是2.2,如果不是,可以去https://dotnet.microsoft.com/download/visual-studio-sdks?utm_source=getdotnetsdk&utm_medium=referral

    我们先引用Quartz.Net 程序包:

     来创建一个Job类HelloQuartzJob:

        public class HelloQuartzJob : IJob
        {
            public Task Execute(IJobExecutionContext context)
            {
                return Task.Factory.StartNew(() =>
                {
                    Console.WriteLine("Hello Quartz.Net");
                });
            }
        }

    然后在Program.cs里面写这个调度:

    static async Task MainAsync()
    {
        var schedulerFactory = new StdSchedulerFactory();
        var scheduler = await schedulerFactory.GetScheduler();
        await scheduler.Start();
        Console.WriteLine($"任务调度器已启动");
    
        //创建作业和触发器
        var jobDetail = JobBuilder.Create<HelloQuartzJob>().Build();
        var trigger = TriggerBuilder.Create()
                                    .WithSimpleSchedule(m => {
                                        m.WithRepeatCount(3).WithIntervalInSeconds(1);
                                    })
                                    .Build();
    
        //添加调度
        await scheduler.ScheduleJob(jobDetail, trigger);
    }

    Main需要改一下

            static async Task Main(string[] args)
            {
                Console.WriteLine("Hello World!");
               
                await MainAsync();
                Console.ReadKey();
    
            }

    这样运行会报错,打开项目属性,生成,高级,修改语言版本为c#7.1,或c#7.2,或c#7.3

    修改之后,没有错误,运行成功:

  • 相关阅读:
    linux 下常用命令
    Mysql 数据库几种引擎的区别比较
    java 中使用ajax调用后台方法注意事项
    C# HtmlDocument和HtmlNode的使用以及节点的模糊查询
    Visio 保存卡死解决办法
    java outterLoop跳出多重循环用法以及详解
    webapi 文件下载输出接口
    获取web.config 内的值
    xml的读取(曾删改)
    from 验证
  • 原文地址:https://www.cnblogs.com/zhuzhao/p/11926769.html
Copyright © 2011-2022 走看看