java学习-quartz


一、quartz是什么?

在网上找博客却对不上自己公司的代码时,请确定你是否真的了解了java定时器,java实现定时到底有几种方式。

二、怎么用quartz

1.创建一个任务类

public class MyJob implements Job {

    @Override
    public void execute(JobExecutionContext arg0) throws JobExecutionException {
        System.out.println("Hello World");

    }

2.写触发器和调度器

1.使用SimpleTrigger:

public class SchedulerUtil {
    private static Logger _logger = Logger.getLogger(SchedulerUtil.class);
    public static void handleSimpleTrigger(String jobName, String jobGroupName,
            String triggerName, String triggerGroupName, Class jobClass,
            int time, int count) {
        // 通过schedulerFactory获取一个调度器
        SchedulerFactory schedulerfactory = new StdSchedulerFactory();
        Scheduler scheduler = null;
        try {
            // 通过schedulerFactory获取一个调度器
            scheduler = schedulerfactory.getScheduler();
            // 创建jobDetail实例,绑定Job实现类
            // 指明job的名称,所在组的名称,以及绑定job类
            JobDetail job = JobBuilder.newJob(jobClass)
                    .withIdentity(jobName, jobGroupName).build();
            // 定义调度触发规则
             //使用simpleTrigger规则
             
             Trigger trigger=TriggerBuilder.newTrigger()
             		 .withIdentity(triggerName,triggerGroupName)
                     .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(time)
                     .withRepeatCount(count))
             		 .startNow().build();
            // 把作业和触发器注册到任务调度中
            scheduler.scheduleJob(job, trigger);
            // 启动调度
            scheduler.start();
        } catch (Exception e) {
            _logger.warn("执行"+jobGroupName+"组"+jobName+"任务出现异常E:["+ e.getMessage() + "]");
        }
    }

使用CronTrigger:

public static void hadleCronTrigger(String jobName, String jobGroupName,
            String triggerName, String triggerGroupName, Class jobClass,String cron) {
        // 通过schedulerFactory获取一个调度器
        SchedulerFactory schedulerfactory = new StdSchedulerFactory();
        Scheduler scheduler = null;
        try {
            // 通过schedulerFactory获取一个调度器
            scheduler = schedulerfactory.getScheduler();
            // 创建jobDetail实例,绑定Job实现类
            // 指明job的名称,所在组的名称,以及绑定job类
            JobDetail job = JobBuilder.newJob(jobClass)
                    .withIdentity(jobName, jobGroupName).build();
            // 定义调度触发规则
            //使用cornTrigger规则  每天18点30分  
            Trigger trigger=TriggerBuilder.newTrigger().withIdentity(triggerName, triggerGroupName)  
            .withSchedule(CronScheduleBuilder.cronSchedule(cron))  
            .startNow().build();    
            // 把作业和触发器注册到任务调度中
            scheduler.scheduleJob(job, trigger);
            // 启动调度
            scheduler.start();
        } catch (Exception e) {
            _logger.warn("执行"+jobGroupName+"组"+jobName+"任务出现异常E:["+ e.getMessage() + "]");
        }
    }

总结


版权声明:本文为cyy9487原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>