惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Help Net Security
Help Net Security
G
Google Developers Blog
雷峰网
雷峰网
WordPress大学
WordPress大学
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
AWS News Blog
AWS News Blog
F
Full Disclosure
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
J
Java Code Geeks
U
Unit 42
C
Cyber Attacks, Cyber Crime and Cyber Security
V
V2EX
C
Cisco Blogs
博客园 - 司徒正美
Project Zero
Project Zero
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
Scott Helme
Scott Helme
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
S
Securelist
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
T
Threatpost
Recorded Future
Recorded Future
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
The Register - Security
The Register - Security
S
Security Archives - TechRepublic
博客园 - Franky
N
News | PayPal Newsroom
Simon Willison's Weblog
Simon Willison's Weblog
S
SegmentFault 最新的问题
W
WeLiveSecurity
A
Arctic Wolf
B
Blog

博客园 - 小居工作室

七牛云存储客户端(本人开发,开源) 如鹏网 net高级技术 第二章 委托和事件(复习) 如鹏网 net高级技术 第一章 各种知识点(复习) Pdf File Writer 中文应用(PDF文件编写器C#类库) 如鹏网 静态Web开发 第五章:JQuery 如鹏网 静态Web开发 第四章:JSDom 如鹏网 静态Web开发 第三章:Javascript 如鹏网 静态Web开发 第二章:css 如鹏网 静态Web开发 第一章:html 如鹏网.Net三层架构 第四章代码生成器 如鹏网.Net三层架构 第三章MD5和NPOI使用 如鹏网.Net三层架构第二章登录和会员管理 如鹏网.Net三层架构第一章三层基础 如鹏网.Net高级技术9.XML文件操作 如鹏网.Net高级技术8.反射 如鹏网.Net高级技术6.正则表达式 如鹏网.Net高级技术7.委托、事件 如鹏网.Net高级技术5.泛型集合及键值对 如鹏网.Net高级技术3.值类型和引用类型 如鹏网.Net高级技术4.String特点及常用方法
写个QuartzHelper类
小居工作室 · 2017-06-25 · via 博客园 - 小居工作室

本文由[【小居工作室】原创,转载请说明源地址:http://www.cnblogs.com/wjs5943283/p/7076178.html,感谢如鹏网老杨的技术教学和细心指导。特此说明!

Quartz.net(2.5.0)用起来感觉很麻烦,就写个辅助类,先写两个方法,别的用到可再扩展,写的不到之处,再请指出:

/// <summary>

    /// 定时器辅助类

    /// </summary>

    public static class QuartzHelper

    {

      private static readonly IScheduler Sched = new StdSchedulerFactory().GetScheduler();

 

        /// <summary>

       ///  基于CronScheduleBuilder,在某一时刻执行job

        /// </summary>

       /// <param name="jobType">Ijob实现类</param>

       /// <param name="builder">CronScheduleBuilder对象</param>

        /// <param name="jobName">job名称,不能重复</param>

       /// <param name="triggerKeyName">trigger名称,不能重复</param>

       public static void CronScheduleQuartz(Type jobType, CronScheduleBuilder builder, string jobName=null, string triggerKeyName=null)

        {

            if (string.IsNullOrWhiteSpace(jobName))

            {

                jobName = Guid.NewGuid().ToString();

            }

            if (string.IsNullOrWhiteSpace(triggerKeyName))

            {

                triggerKeyName = Guid.NewGuid().ToString();

            }

            JobDetailImpl jdBossReport = new JobDetailImpl(jobName, jobType);

            IMutableTrigger triggerBossReport = builder.Build();

            triggerBossReport.Key = new TriggerKey(triggerKeyName);

            Sched.ScheduleJob(jdBossReport, triggerBossReport);

        }

 

        /// <summary>

       ///  基于CalendarIntervalScheduleBuilder,每隔多久执行一次job

        /// </summary>

       /// <param name="jobType">Ijob实现类</param>

       /// <param name="builder">CalendarIntervalScheduleBuilder对象</param>

       /// <param name="jobName">job名称,不能重复</param>

       /// <param name="triggerKeyName">trigger名称,不能重复</param>

       public static void CalendarIntervalQuartz(Type jobType, CalendarIntervalScheduleBuilder builder, string jobName = null, string triggerKeyName = null)

       {

           if (string.IsNullOrWhiteSpace(jobName))

           {

               jobName = Guid.NewGuid().ToString();

           }

           if (string.IsNullOrWhiteSpace(triggerKeyName))

           {

               triggerKeyName = Guid.NewGuid().ToString();

           }

           JobDetailImpl jdBossReport = new JobDetailImpl(jobName, jobType);

           IMutableTrigger triggerBossReport = builder.Build();

           triggerBossReport.Key = new TriggerKey(triggerKeyName);

           Sched.ScheduleJob(jdBossReport, triggerBossReport);

       }

        /// <summary>

        /// 执行定时任务

        /// </summary>

        public static void Start()

        {

           Sched.Start(); 

        }

 

    }

调用方法:

  QuartzHelper.CalendarIntervalQuartz(typeof(MyJob1), CalendarIntervalScheduleBuilder.Create().WithInterval(3,IntervalUnit.Second), "myjob1", "t1");

            QuartzHelper.CronScheduleQuartz(typeof(MyJob2),CronScheduleBuilder.DailyAtHourAndMinute(9,41),"myjob2","t2" );

            QuartzHelper.CalendarIntervalQuartz(typeof(MyJob), CalendarIntervalScheduleBuilder.Create().WithInterval(2, IntervalUnit.Second));

            QuartzHelper.CronScheduleQuartz(typeof(MyJob1), CronScheduleBuilder.DailyAtHourAndMinute(9, 41));

            QuartzHelper.Start();