• 第一个Quartz程序 (二)


    1 我们使用maven项目

    2 创建一个job类,在execute()方法里写上业务逻辑代码。

    3 在另外一个类中创建触发器,调度器,并且绑定job。

    首先在项目的pom.xml引入需要的jar包。

         <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.1</version>
          </dependency>
          <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz-jobs</artifactId>
            <version>2.2.1</version>
          </dependency>  

    创建一个job

    package quartz;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    
    public class JobClass implements Job {
    
        public void execute(JobExecutionContext arg0) throws JobExecutionException {
            Date date=new Date();
            SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            System.out.println("当前时间为:"+sf.format(date));
            // 编写业务逻辑
            System.out.println("hello Quartz");
        }
    
    }

     再创建另外一个类

    package quartz;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.quartz.JobBuilder;
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerException;
    import org.quartz.SchedulerFactory;
    import org.quartz.SimpleScheduleBuilder;
    import org.quartz.Trigger;
    import org.quartz.TriggerBuilder;
    import org.quartz.impl.StdSchedulerFactory;
    
    public class SchedulerClass {
        
        public static void main(String[] args) throws SchedulerException {
            // 创建一个JobDetail实例 将该实例与JobClass绑定,JobDetail是由Builder模式来创建的,JobDetail是来绑定job的。
            // withIdentity 创建唯一的标识
            JobDetail jobDetail = JobBuilder.newJob(JobClass.class).withIdentity("job").build();
            
            // 创建一个Tigger实例,定义 job立即执行,并每隔一段时间重复执行,每隔5秒中执行一次
            Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger").startNow()
                    .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever()).build();
            
            // 创建一个Scheduler实例, Scheduler是由工厂模式来创建的 so
            SchedulerFactory factory = new StdSchedulerFactory();
            Scheduler scheduler = factory.getScheduler();
            scheduler.start();
    
            Date date = new Date();
            SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            System.out.println("当前时间为:" + sf.format(date));
            //调度器调用任务和触发器,scheduler将job,trigger绑定在一起。
            scheduler.scheduleJob(jobDetail, trigger);
            
            
            
    
        }
    }

    但是这样看起来很复杂的!

  • 相关阅读:
    UITextView in iOS7 doesn&#39;t scroll
    interlliJ idea 不识别文件类型的解决方式
    __super
    自用广告过滤规则,整合xwhyc大大的,非常小才79K
    Eclipse设置打印线
    SQL Server批量替换全部表中内容sql语句-清楚挂马
    删除同样元素(线性表)
    学习node js 之微信公众帐号接口开发 准备工作之三
    Bitmap基本概念及在Android4.4系统上使用BitmapFactory的注意事项
    多个rs485设备怎样跟上位机通讯?
  • 原文地址:https://www.cnblogs.com/hellokitty1/p/7388835.html
Copyright © 2020-2023  润新知