servlet 中使用 quartz2.0.2

[代码][Java]代码     跳至 [1] [2] [3] [4] [全屏预览]
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//首先需要下载 quartz 2.0.2
//并将目录下的  quartz-2.0.2\lib\下所要用的jar包导入到系统中 
//配置web.xml
<!-- quartz的任务调度begin -->
     <servlet>
          <servlet-name>
              QuartzInitializer
          </servlet-name>
          <servlet- class >
              org.quartz.ee.servlet.QuartzInitializerServlet
          </servlet- class >
          <load-on-startup>
              1
          </load-on-startup>
      </servlet>
<!-- quartz的任务调度end -->

2. [代码][Java]代码     跳至 [1] [2] [3] [4] [全屏预览]

?
1
2
3
4
5
6
7
8
9
10
11
<!--同时在web.xml中需要另外配置一个初始化的servlet类-->
<!-- 系统初始化 -->
     <servlet>
         <servlet-name>HMInit</servlet-name>
         <servlet- class >com.XXX.XXX.servlet.HMInitServlet</servlet- class >
         <load-on-startup> 1 </load-on-startup>
     </servlet>
     <servlet-mapping>
         <servlet-name>HMInit</servlet-name>
         <url-pattern>/HMInit</url-pattern>
     </servlet-mapping>

3. [代码][Java]代码     跳至 [1] [2] [3] [4] [全屏预览]

?
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
/**
*初始化类省略部分代码
**/ public class HMInitServlet extends HttpServlet {
   private static final long serialVersionUID = -2981672344643340101L;
   private static Log log =    LogFactory.getFactory().getInstance(HMInitServlet. class );
    
   public void init(ServletConfig config) throws ServletException { //启动任务调度 StdSchedulerFactory factory = (StdSchedulerFactory) getServletContext().getAttribute(QuartzInitializerServlet.QUARTZ_FACTORY_KEY);
Scheduler scheduler = factory.getScheduler();
JobDetail job = JobBuilder.newJob(DbYueJob. class ).withIdentity( "按月计算担保余额任务" , "担保余额工作组" ).build(); /**
* Cron 表达式‘ 秒   分钟  小时   月中的天   月  周中的天 年(可选)’
* 通配符('*')可以被用来表示域中“每个”
* '/'字符用来表示值的增量,如果分钟域中放入'0/15',它表示“每隔15分钟,从0开始”
* '?'字符可以用在 ‘月中的天’及‘周中的天’域中,它用来表示“没有指定值”。
*  其他可谷歌 ‘ Cron 表达式’
*/
CronTrigger trigger = TriggerBuilder.newTrigger() .withIdentity( "按月计算余额任务触发器" , "余额工作组" )             .withSchedule(CronScheduleBuilder.cronSchedule( "0 0/1 * * * ?" )).build(); //每分钟触发一次                    job.getJobDataMap().put(VarNameDefs.WORKFLOW_OBJECT, hm.getWorkFlow());//其中这个是向任务中传参的方法  可以根据业务逻辑处理                     
Date ft = scheduler.scheduleJob(job, trigger);
log.info(job.getKey() + " 已经被启动: " + ft + " 时间表达式是: " + trigger.getCronExpression());
  
   }
  
  
  
}

4. [代码][Java]代码     跳至 [1] [2] [3] [4] [全屏预览]

?
1
2
3
4
5
6
7
8
//具体执行任务的类
public class DbYueJob implements Job {
  
     @Override
     public void execute(JobExecutionContext context) throws JobExecutionException {
         System.out.println( "触发定时器...." +context.getJobDetail().getJobDataMap());
         }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值