zoukankan      html  css  js  c++  java
  • 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();
            }
        }
  • 相关阅读:
    静态页转换平台(StaticPol)-静态页生成终极解决方案
    用DataSetSurrogate加速WebService
    压缩和解压缩数据流
    Stream 和 byte[] 之间的转换(转)
    优化网站性能 提高网站速度访问速度的14条实践(转)
    常用WebServices返回数据的4种方法比较
    .Net 中的序列化与反序列化
    对象序列化反序列化
    ASP.Net中自定义Http处理及应用之HttpModule篇
    利用UrlRewrite,asp.net动态生成htm页面
  • 原文地址:https://www.cnblogs.com/mafei2014/p/5082093.html
Copyright © 2011-2022 走看看