java如何利用第三方Quartz实现定时任务

 我来答
ijava学习网
2018-07-06 · 国内最优秀java资源共享平台
ijava学习网
国内最优秀的java免费资源共享及学习平台,专注从实战中学习与成长。主要包括教程、经验分享、知识、资讯、工具、手册、视频及各种资源下载。
向TA提问
展开全部

给你一个简单的案例加详细注解

  1. /*
    * job是一个接口,只有一个方法void execute(JobExecutionContext context),
    * 被调度的作业(类)需实现该接口中execute()方法,
    * JobExecutionContext类提供了调度上下文的各种信息。每次执行该Job均重新创建一个Job实例
    */
    public class MyJob  implements Job {
    //MyJob类为需要定时执行的类,execute为定时执行的方法。一个定时任务对应一个Job实现类。
    @Override
    public void execute(JobExecutionContext arg0) throws JobExecutionException {
    // TODO Auto-generated method stub
    perform();
    }
    public void perform(){ //执行报表统计入口函数
    //业务逻辑
    System.out.println("执行时间:"+new Date());
    }


    }

  2. public class QuartzTest5 {

    public static void main(String[] args) throws Exception {
    //SchedulerFactory 是一个接口,用于Scheduler的创建和管理
    SchedulerFactory factory = new StdSchedulerFactory();
    //从工厂里面拿到一个scheduler实例
    //计划表(可能翻译的不太贴切),现在我们有了要做的内容,
    //与调度程序交互的主要API
    /*
    * Scheduler的生命期,从SchedulerFactory创建它时开始,
    到Scheduler调用shutdown()方法时结束;Scheduler被创建后,
    可以增加、删除和列举Job和Trigger,以及执行其它与调度相关的操作
    (如暂停Trigger)。但是,Scheduler只有在调用start()方法后,
    才会真正地触发trigger(即执行job)
    */
    Scheduler scheduler = factory.getScheduler();
    //具体任务.
    //用于定义作业的实例
    //JobBuilder - 用于定义/构建JobDetail实例,用于定义作业的实例。
    JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").build();


    //Trigger(即触发器) - 定义执行给定作业的计划的组件
    //TriggerBuilder - 用于定义/构建触发器实例
    CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
    .withSchedule(CronScheduleBuilder.cronSchedule("0/1  * * * * ?")).build();
    scheduler.scheduleJob(job, trigger);
    scheduler.start();


    }

    }

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式