转自:http://www.blogchong.com/post/96.html

quartz定时任务调度框架,使用实例。

Job类://即实际调度任务实现

package net.csdn.edm.util.quartz;
 
import java.util.HashMap;
import java.util.Map;
import net.csdn.common.logging.CSLogger;
import net.csdn.common.logging.Loggers;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
 
/**
 * @author:blogchong
 * @Version:1.0
 * @CreateTime:2014年12月30日 下午3:27:02
 * @Description:定时进度job
 */
 
public class QuartzJob implements Job {
 
    protected CSLogger logger = Loggers.getLogger(QuartzJob.class);
 
    @SuppressWarnings("static-access")
    public void execute(JobExecutionContext arg0) throws JobExecutionException {
 
        // 接收参数
        JobDataMap jobDataMap = arg0.getJobDetail().getJobDataMap();
         
        //通过这种方式,传递参数
        String taskId = jobDataMap.getString("taskId");
         
        //具体的定时任务实现,在这里实现即可
                //具体实现略过
    }
}

添加Job类:

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
51
52
53
54
55
56
57
58
59
60
61
62
63
package net.csdn.edm.util.quartz;
import net.csdn.common.logging.CSLogger;
import net.csdn.common.logging.Loggers;
import net.csdn.edm.util.MacroDef;
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
/**
 * @author:blogchong
 * @Version:1.0
 * @CreateTime:2014年12月30日 下午3:28:32
 * @Description:添加job接口
 */
public class QuartzAdd {
public static SchedulerFactory schedFact = new StdSchedulerFactory();
protected static CSLogger logger = Loggers.getLogger(QuartzAdd.class);
public static Scheduler sched;
public static void startSched() throws SchedulerException {
try {
QuartzAdd.sched = QuartzAdd.schedFact.getScheduler();
QuartzAdd.sched.start();
catch (Exception e) {
e.printStackTrace();
}
}
public static boolean quartzAdd(String type, String taskId) throws Exception {
try {
// 若sched未赋值或者未启动,则先在全局中启动它
if (QuartzAdd.sched == null || !QuartzAdd.sched.isStarted()) {
QuartzAdd.startSched();
}
//定时规则,跟普通crontable的差不多
String rule = "0 0/" + MacroDef.QUARTZ_INTERVAL + " * * * ?";
//设置组名,和任务名
String quartz_name = taskId;
String quartz_group = type;
// 创建jobDetail实例,指定job名以及所属组
JobDetail jobDetail = JobBuilder.newJob(QuartzJob.class)
.withIdentity(quartz_name, quartz_group).build();
jobDetail.getJobDataMap().put("taskId", taskId);
Trigger trigger = TriggerBuilder
.newTrigger()
.withIdentity(quartz_name, quartz_group)
.withSchedule(
CronScheduleBuilder.cronSchedule(rule))
.startNow().build();
QuartzAdd.sched.scheduleJob(jobDetail, trigger);
logger.info("[已添加定时获取进度任务, taskID:" + taskId + ", type:" + type + "]");
return true;
catch (Exception e) {
logger.error("[添加定时任务出错,任务号:" + taskId + "]");
logger.error(e.toString());
return false;
}
}
}

Quartz实例:quartz定时任务代码示例的更多相关文章

  1. 【Quartz】将定时任务持久化到数据库

    之前的文章所做的demo是将定时任务的信息保存在内存中的,见以下配置 org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore 如果,我们需要在 ...

  2. 原!总结 quartz集群 定时任务 测试运行ok

    由于项目优化重构,想将定时任务从quartz单机模式变成集群或分布式的方式.于是,百度了一圈....修修改改...用集群的方式部署定时任务,测试可以... 集群?分布式?什么区别? 集群:同一个业务, ...

  3. 3分钟掌握Quartz.net分布式定时任务的姿势

    引言 长话短说,今天聊一聊分布式定时任务,我的流水账笔记: ASP.NET Core+Quartz.Net实现web定时任务 AspNetCore结合Redis实践消息队列 细心朋友稍一分析,就知道还 ...

  4. 使用Spring整合Quartz轻松完成定时任务

    一.背景 上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等. 二.开发环境及必 ...

  5. Spring 3整合Quartz 2实现定时任务--转

    常规整合 http://www.meiriyouke.net/?p=82 最近工作中需要用到定时任务的功能,虽然Spring3也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大.在考虑之 ...

  6. Spring 整合 Quartz 实现动态定时任务

    复制自:https://www.2cto.com/kf/201605/504659.html 最近项目中需要用到定时任务的功能,虽然Spring 也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能 ...

  7. 【转】Spring 整合 Quartz 实现动态定时任务

    http://blog.csdn.net/u014723529/article/details/51291289 最近项目中需要用到定时任务的功能,虽然spring 也自带了一个轻量级的定时任务实现, ...

  8. Spring 整合 Quartz 实现动态定时任务(附demo)

    最近项目中需要用到定时任务的功能,虽然Spring 也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大.在考虑之后,决定整合更为专业的Quartz来实现定时任务功能. 普通定时任务 首先 ...

  9. Spring整合Quartz轻松完成定时任务

    一.背景 上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等. 二.开发环境及必 ...

随机推荐

  1. Android 应用安装成功之后删除apk文件

    问题: 在应用开发中遇到需要这样的需求:在用户下载我们的应用安装之后删除安装包. 解决: android会在每个外界操作APK的动作之后发出系统级别的广播,过滤器名称: android.intent. ...

  2. DeltaFish 校园物资共享平台 第三次小组会议

    一.想法 娄雨禛: 网页底层开发转移到后端,快速建站,效率高. 可以依照模板进行仿制. 可以考虑只进行页面设计. 但是出现问题不会调试. 所以自己写源码,做出一个大致的样子. 二.上周进度汇报 齐天杨 ...

  3. asp.net 正则表达式 得到图片url 得到汉字

    //取图片            MatchCollection   matchs   =   Regex.Matches(AskText,@"<img\s[^> ]*src=( ...

  4. promise原理及使用方法

    Promise 的含义 所谓Promise ,简单说就是一个容器,里面保存着某个未来才回结束的事件(通常是一个异步操作)的结果.从语法上说,Promise是一个对象,从它可以获取异步操作的消息. re ...

  5. Apache2.2 启动和停止命令

    1.启动:net start apache2.2 2.停止:net stop apache2.2

  6. centos6.5 安装redis自动启动

    1.安装需要的支持环境 在安装Redis之前首要先做的是安装Unix的 Tcl工具 ,如果不安装的话后期将无法对Redis进行测试.在后期执行make test的时候返回如下错误信息: You nee ...

  7. 【剑指Offer】8、跳台阶

      题目描述:   一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果).   解题思路:   首先考虑最简单的情况,如果只有1级台阶, ...

  8. shell脚本中source无效

    发现在shell里面执行source,提示找不到命令.所以,我取搜了一些资料,总结一下. 一. 脚本中,source找不到命令--------------是因为用了sh执行脚本,而debian系统的s ...

  9. 2018 noip 备战日志

    我是写给自己看的…… Day1 10.8 今天开始停晚修课了,开始认真备战考试了. 今天晚上效率不错,竟然不会累,应该是平时一直这个时间写作业大脑高度集中, 现在换了编程也一样可以集中到这个状态 一些 ...

  10. linux下的mongodb数据库原生操作

    mongodb,是一种结构最像mysql的nosql mysql中的数据库,mongodb中也有,区别在于, myql中数据库下的是表,字段和数据的形式存在 mongodb数据库下的是叫集合(和pyt ...