定时任务的实现

Java+Quartz实现定时任务

 

定时任务vo对象:JobManagerVo

jobName:任务名

jobClass:定时任务处理类

jobType:任务类型,0运行一次 1重复任务 其他立即运行

cronReg:定时器规则

runStatus:状态,0停止,,其他运行中


定时任务实现类定义

public class MyJob implements Job{

    @Override

    public void execute(JobExecutionContext arg0) throws JobExecutionException {

        System.out.println("开启了定时任务");

        

    }

}

启动定时任务启动器:JobRunner

启动定时任务步骤

1. 根据jobClass获取 JobDetail对象

2. 获取调度器 Scheduler

3. 构造触发器CronTrigger

4. 任务和触发器注册到调度器中

Class forName = Class.forName(className);
JobDetail jobDetail = newJob(forName).withIdentity(jobId.toString()).build();
jobDetail.getJobDataMap().put("jobKey", jobId.toString());

CronTrigger cTrigger = newTrigger().withSchedule(cronSchedule(cronReg)).build();
// 添加到调度器
scheduler.scheduleJob(jobDetail, cTrigger);

cronReg:定时器规则

className:定时任务所在类

jobId:定时任务的id

Spring+Quartz实现定时任务

JobRunner实现ServletContextListener监听器

Web.xml配置,启动定时任务启动器监听,启动Scheduler调度器

    <!-- marketing 定时任务 -->

<listener>

<listener-class>com.ztesoft.bss.marketing.web.controller.marksystem.job.JobRunner</listener-class>

</listener>

public void contextInitialized(ServletContextEvent arg0) {

try {

sf = new StdSchedulerFactory();

Scheduler scheduler = JobRunner.sf.getScheduler();

JobRunner.scheName = scheduler.getSchedulerName();

scheduler.start(); // 容器启动

logger.info(scheName+"--【定时任务调度器】启动成功");

} catch (Exception e) {

e.printStackTrace();

}

}

日志:

job_log定时任务日志

job_flow_log:定时任务流水日志

 

 

定时器规则说明:

表达式有至少6个(也可能是7个)由空格分隔的时间元素。从左至右,这些元素的定义如下:

1.秒(059

2.分钟(059

3.小时(023

4.月份中的日期(131

5.月份(112JANDEC

6.星期中的日期(17SUNSAT

7.年份(19702099

例子:

0 0 10,14,16 * * ?

每天上午10,下午2点和下午4

0 0,15,30,45 * 1-10 * ?

每月前10天每隔15分钟

30 0 0 1 1 ? 2012

201211日午夜过30秒时

链接:http://blog.knowsky.com/260132.htm

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值