关闭

Quartz之手动启动和关闭定时器简单示例

标签: quartz
7565人阅读 评论(2) 收藏 举报
分类:

开心一笑

考路考那天,上午有个驾校带来的15个人全军覆没了,原因是有个女孩子很紧张,路考车上,监考教官看她一直发抖,心生怜悯安慰她:“小姑娘,你别怕,我又不吃人。”这女孩子转过头笑着说:“没事,我不怕,早上教练跟我说了,考官没啥好怕的,你就当一条狗拴在副驾上。”于是,该驾校团灭!!!

视频教程

大家好,我录制的视频《Java之优雅编程之道》已经在CSDN学院发布了,有兴趣的同学可以购买观看,相信大家一定会收获到很多知识的。谢谢大家的支持……

视频地址:http://edu.csdn.net/lecturer/994

提出问题

Quartz如何实现定时器的手动启动和手动关闭,来提高系统性能???

解决问题

定义一个AyTestJob任务类,继承QuartzJobBean

package com.evada.de.projcommand.service.impl;
import org.quartz.*;
import org.springframework.scheduling.quartz.QuartzJobBean;

/**
 *测试任务类
 * Created by Ay on 2016/5/7.
 */
public class AyTestJob extends QuartzJobBean{

    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        //jobExecutionContext可以获得你想要的关于这个定时器的一切
        JobDetail jobDetail = jobExecutionContext.getJobDetail();
        Scheduler scheduler = jobExecutionContext.getScheduler();
        Trigger trigger = jobExecutionContext.getTrigger();
        System.out.println(jobDetail.getClass().getName());
        System.out.println("在这里处理项目的任务逻辑......");
    }
}

写个测试方法test(),名字有点俗,但管用,解释下

public void test(){
        try {

            Scheduler scheduler = schedulerFactory.getScheduler();

            //判断是否有AyTestJob类,有代表任务类在执行任务,定时器已经启动了,停止它
            if(scheduler.getJobDetail(new JobKey("AyTestJob")) != null){
                //定时器关闭
                scheduler.deleteJob(new JobKey("AyTestJob"));
                System.out.println("定时器已经关闭了!!!");
            //没有的话,说明定时器没有启动,启动它
            }else{
                //获得定义的AyTestJob
                JobDetail myJobDetail = new JobDetailImpl("AyTestJob",Scheduler.DEFAULT_GROUP,AyTestJob.class);
                //定义出发器,每10秒触发一次
                Trigger myTrigger = new CronTriggerImpl("AyTestTrigger",
                        Scheduler.DEFAULT_GROUP, "0/10 * * * * ?");
                //设置Job任务类和触发器
                scheduler.scheduleJob(myJobDetail, myTrigger);
                //启动定时器,大功告成!!!
                scheduler.start();
                System.out.println("每隔10秒的定时器已经启动了........");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

控制台打印信息如下:

org.quartz.impl.JobDetailImpl
在这里处理项目的任务逻辑......
org.quartz.impl.JobDetailImpl
在这里处理项目的任务逻辑......
org.quartz.impl.JobDetailImpl
在这里处理项目的任务逻辑......

具体定时器如何和项目业务结合,得根据项目需要,这只是一个简单的示例而已!!!

大功告成!!!

读书感悟

来自《初恋这件小事》

  • 让自己努力的那个人,就像自己生命的灵魂,让我们了解爱的积极意义。
  • 现实永远不及电HI影来的那么完美。很多时候,相爱的人不能一起走到最后。
  • 暗恋是件小事,初恋是件小事,这件小事的名字叫青春

其他

如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎转载,点赞,顶,欢迎留下宝贵的意见,多谢支持!

0
0
查看评论

使用Spring Quartz做自动任务 启动和关闭

因开发需要做一个队自动任务的开关,网上的搜索的结果都不是很满意,考虑到spring本身使用的是单例模式,所以在springMVC中开发是最适合的。/** * 启动、关闭自动通过 * @author yangxujia * @throws Exception * @state sta...
  • yangxujia
  • yangxujia
  • 2015-11-13 15:38
  • 7308

Quartz源码——scheduler.start()启动源码分析(二)

scheduler.start()是Quartz的启动方式!下面进行分析,方便自己查看! 我都是分析的jobStore 方式为jdbc的SimpleTrigger!RAM的方式类似分析方式!
  • u010648555
  • u010648555
  • 2016-12-08 16:40
  • 3059

Spring4.0.6 +Quartz 2.2.1动态添加、修改、删除、关闭定时任务

说在前面:Spring Quartz动态添加、修改、删除、关闭定时任务, 无非就是将 《Spring task quartz 示例 一文中的Spring quartz示例 和 《Quartz 2.2 动态添加、修改和删除定时任务》QuartzManager.java进行整合。 相对Spr...
  • xlxxcc
  • xlxxcc
  • 2016-08-04 14:17
  • 8907

java编程式控制quartz Scheduler 启动和停止,无法停止的问题解决

在项目中需要手动启停某些服务,那么需要有一个控制这些任务的类。由于任务是有Quartz控制的,我们只需要通过Quartz的相关的API实现相关的功能即可。       在spring 配置中把自启动关闭就可以用了 class="org.spri...
  • tiantangpw
  • tiantangpw
  • 2015-12-29 09:59
  • 6375

Quartz2实现任务的临时启动/暂停/恢复

在项目中需要手动启停某些服务,那么需要有一个控制这些任务的类。由于任务是有Quartz控制的,我们只需要通过Quartz的相关的API实现相关的功能即可。        Java代码   ...
  • zmx729618
  • zmx729618
  • 2016-05-17 16:17
  • 2866

spring中的quartz在tomcat停止后不能正常关闭的问题处理

SSH项目 在完成定时任务的过程中,基本要求完成但是在项目停止的时候,quartz不能正常的去关闭,报出警告:  org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web applic...
  • liujun_for_java
  • liujun_for_java
  • 2017-09-26 16:31
  • 509

Quartz 2.2 的实现原理和运行过程固定时间后删除任务

Quartz 2.2 的实现原理和运行过程 一、Quartz 的几个概念类 这几个概念类,是我们调用Quartz任务调度的基础。了解清楚之后,我们再来看一下如何去启动和关闭一个Quartz调度程序。 1、org.quartz.Job 它是一个抽象接口,表示一个工作,也就是我们要执行的具体...
  • u010357298
  • u010357298
  • 2017-09-07 14:43
  • 695

spring--quartz--手动执行

在spring中手动执行定时任务;
  • liwenjie001
  • liwenjie001
  • 2014-04-04 18:54
  • 4868

作业调度框架 Quartz 学习笔记(二) -- 简单触发器(SimpleTrigger)

简单回顾一下上一节学习到的 "HelloWorld " 1 创建一个job类,实现Job接口,覆盖 public void execute(JobExecutionContext context) 方法,在方法中写入你要执行的操作(数据导入/备份,轮询检查文件等)代码 2 创...
  • lnara
  • lnara
  • 2013-03-04 17:35
  • 28474

spring--quartz--手动执行

spring--quartz--手动执行
  • educast
  • educast
  • 2017-06-16 08:06
  • 706
    个人资料
    • 访问:419127次
    • 积分:5616
    • 等级:
    • 排名:第5582名
    • 原创:201篇
    • 转载:0篇
    • 译文:0篇
    • 评论:313条
    个人教程

    CSDN视频教程

    个人信息
    博客专栏