写个QuartzHelper类

本文由[【小居工作室】原创,转载请说明源地址: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();
时间: 2024-10-27 13:29:09

写个QuartzHelper类的相关文章

java中IO写文件工具类

下面是一些根据常用java类进行组装的对文件进行操作的类,平时,我更喜欢使用Jodd.io中提供的一些对文件的操作类,里面的方法写的简单易懂. 其中jodd中提供的JavaUtil类中提供的方法足够我们使用,里面的方法写的非常简练,例如append,read等方法,封装更好,更符合面向对象, 这里面我写的一些方法可多都是模仿jodd,从里面进行抽取出来的. /** * 获取路径文件夹下的所有文件 * @param path * @return */ public static File[] ge

Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

#29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类Truck是Car类的子类,其中包含的属性有载重量payload.每个 类都有构造方法和输出相关数据的方法.最后,写一个测试类来测试这些类的功 能. package hanqi; public class Vehicle { private int wheels; private int weight

自写打印日历类

在论坛上看到有人在问打印日历的程序,今天下午空闲的时候写了一个日历类,简单的写了几个方法. calendar.h #include <string> using namespace std; #ifndef CALENDAR_H #define CALENDAR_H class Calendar{ public: Calendar(){} void printAllMonth(const int &year); void printOneMonth(const int &yea

自学.net(1)手写一个sqlhelper类

自学.net已经快一个月了,看的是传智播客的视频,今天正好申请了博客,就先把手写的sqlhelper类上传上去吧 别忘了在解决方案管理器的“引用”添加System.Configuration 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Configuration; 6 using System.Data.SqlClient;

自己写了一个类(serialize 和 unserialize)

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 <?php //声明一个类 class dog {     var $name;     var $age;     var $owner;     function dog($in_name="unname

写一个NSString类的实现

意思是:建立对象需要两个步骤1分配内存 2初始化 1分配内存,要sent alloc orallocWithZone: message to the object’s class. 也就是常见的[Class alloc].或是不常见的[Class allocWithZone] 2初始化.要调用init的方法进行初始化,各种各样的要或不要参数的init方法都算. 以上建立对象的方式,返回值要送进 对象自动管理池 IOS面试题示例:写一个NSString类的实现 + (id)initWithCStr

自己动手写Java String类

很早想造个轮子了,听说不想造轮子的程序员不是好程序员,用惯了Apache的众多开源项目,却没看过开源一句代码.最近看了几篇卖焦虑的文章之后,突然变得慌张起来,于是在百忙之中难得一点闲第一次打开了JDK的源码包.初读:晦涩难懂,3千多行代码,全英文注释,有一些陌生的语法和调用陌生的类足矣吓退一个中年程序员.再度:只读个轮廓,这String.class也就是注释写的全写得多,核心代码不多嘛!三读:哇喔,整个String类核心变量就一个char[]数组嘛: private final char val

写shell工具类,一个常用实例

简述: 当我们常用到某些指令时,我们就需要将这个命令进行封装.封装的设计和扩展,因人而异.但为了每个人都能够了解到这个命令,常需要写出这个类的help. 关键字: 函数.getopts 函数 通过自定义函数(可参阅:http://www.runoob.com/linux/linux-shell-func.html),能够实现过程操作.输入捕获(read).输出获取(return). getopts 为了获取用户在命令下的参数,通过该命令来操作(可参阅:https://blog.csdn.net/

Controller类的方法上的RequestMapping一定要写在Controller类里吗?

使用Spring Cloud做项目的同学会使用Feign这个组件进行远程服务的调用,Feign这个组件采用模板的方式,有着优雅的代码书写规范.核心原理对Feign等相关注解进行解析,并提取信息,在Spring Boot工程启动时,通过反射生产Request的bean,并将提取的信息,设置到bean中,最后注入到ioc容器中. 现在有这样的场景,服务A提高RestApi接口,服务B.C.D等服务需要调用服务A提供的RestApi接口,这时最常见的做法是在服务B.C.D分别写一个FeignClien