• Quartz.net 定时任务矿建Demo


    1. 首先新建一个 window 控制台程序

    2. 通过 nuget 的方式搜索并安装 Quartz 。 安装的时候回引入3个程序集 Quartz.dll 、Common.logging.dll 、 Common.logging.Core.dll 程序集
    3. 穿件一个继承 IJob 的类,实现其中的 Excute() 方法,此方法中的内容就是制定时间内需要执行的任务。

     /// <summary>
        /// 具体的任务
        /// </summary>
        public class SampJob : Quartz.IJob
        {
            /// <summary>
            /// 每次需要执行的任务
            /// </summary>
            /// <param name="context">执行任务上下文</param>
            public void Execute(Quartz.IJobExecutionContext context)
            {
                Console.WriteLine(DateTime.Now.ToString("r") + "任务");
            }
        }

    2. 在 program 程序中添加以下代码

     class Program
        {
            static void Main(string[] args)
            {
                // 1.0 创建一个作业调度池 -- 获取计划者
                ISchedulerFactory factory = new Quartz.Impl.StdSchedulerFactory();
                IScheduler scheduler = factory.GetScheduler();
                // 2.0 创建一个具体的作业
                IJobDetail job = JobBuilder.Create<SampJob>().Build();
                // 3.0 创建并配置一个触发器,每隔3秒钟执行一次,循环次数为 int 的最大值
                //ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create().WithSimpleSchedule(t => t.WithIntervalInSeconds(3).WithRepeatCount(int.MaxValue)).Build();
    
                // 3.1 创建并配置一个触发器, 引入 cron-like 表达式
                DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddSeconds(1), 2); //NextGivenSecondDate:如果第一个参数为null则表名当前时间往后推迟2秒的时间点。
                DateTimeOffset endTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddYears(2), 3);
                // 创建并配置一个触发器
                ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create().StartAt(startTime).EndAt(endTime).WithCronSchedule("1,10,14 10,20,25,26,33,54 * * * ? ").Build();
    
                // 4.0 加入作业 调度池中
                scheduler.ScheduleJob(job, trigger);
                // 5.0 开始运行
                scheduler.Start();
                Console.ReadKey();
            }
        }
  • 相关阅读:
    回顾2018,展望2019
    NLog日志框架使用探究-1
    基于NetMQ的TLS框架NetMQ.Security的实现分析
    鸟哥的Linux私房菜笔记第五章,文件权限与目录配置(二)
    鸟哥的Linux私房菜笔记第五章,文件权限与目录配置(一)
    鸟哥的Linux私房菜笔记第四章
    ThinkPHP5.1 + tufanbarisyildirim 解析apk
    Java核心技术第八章——泛型程序设计(1)
    Java核心技术第五章——2.Object类
    Java核心技术第五章——1.类、超类、子类(2)
  • 原文地址:https://www.cnblogs.com/mafei2014/p/5082093.html
Copyright © 2020-2023  润新知