1、添加包引用:/jfinal_demo/WebContent/WEB-INF/lib/quartz-all-1.6.1.jar

注意版本号,这个版本是现在项目中使用的,已经有更高版本了,但这版比较稳定。

2、添加Job的实现类:

package cn.jfinal.job;

import java.text.SimpleDateFormat;
import java.util.Date; import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException; public class RedPacketValidate implements Job{
private static final Logger log = Logger.getLogger(RedPacketValidate.class); @Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
validate(); } private void validate() {
// TODO Auto-generated method stub
SimpleDateFormat FORMAT = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
String msgString="当前时间:"+FORMAT.format(new Date());
log.info("红包定时器开始扫描……"+msgString);
System.out.println(msgString);
} }

  

三、添加调度类:

有了干活的,得通知他什么时候干活,怎么干。

SimpleScheduler  简单调度,以后会有复杂调度类,敬请期待。

package cn.jfinal.job;

import java.util.Date;

import org.apache.log4j.Logger;
import org.junit.Test;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.TriggerUtils;
import org.quartz.impl.StdSchedulerFactory; public class SimpleScheduler { private static final Logger log = Logger.getLogger(SimpleScheduler.class); @Test
public void testScheduler()
{
SimpleScheduler simple = new SimpleScheduler();
try
{
// Create a Scheduler and schedule the Job
Scheduler scheduler = simple.createScheduler();
simple.scheduleJob(scheduler); // Start the Scheduler running
scheduler.start(); log.info( "Scheduler started at " + new Date()); } catch (SchedulerException ex) {
log.error(ex);
} } public Scheduler createScheduler() throws SchedulerException
{ //创建调度器
return StdSchedulerFactory.getDefaultScheduler();
} //Create and Schedule a RedPacketValidate with the Scheduler public void scheduleJob(Scheduler scheduler) throws SchedulerException
{ // Create a JobDetail for the Job
JobDetail jobDetail = new JobDetail("RedPacketValidate",Scheduler.DEFAULT_GROUP,RedPacketValidate.class); // Configure the directory to scan
//jobDetail.getJobDataMap().put("SCAN_DIR","D:\\Tomcat\\conf"); //set the JobDataMap that is associated with the Job. // Create a trigger that fires every 10 seconds, forever
Trigger trigger = TriggerUtils.makeSecondlyTrigger(10);//每10秒触发一次 trigger.setName("scanTrigger"); // Start the trigger firing from now
trigger.setStartTime(new Date());//设置第一次触发时间 // Associate the trigger with the job in the scheduler
scheduler.scheduleJob(jobDetail, trigger);
} }

  

四、在web中使用:

SimpleScheduler simple = new SimpleScheduler();
try {
// Create a Scheduler and schedule the Job
Scheduler scheduler = simple.createScheduler();
simple.scheduleJob(scheduler); // Start the Scheduler running
scheduler.start(); log.info("Scheduler started at " + new Date()); } catch (SchedulerException ex) {
log.error(ex);
}

  

五、注意引用job用到的jar包:

Jfinal中定时器的初步探索(一)的更多相关文章

  1. Jfinal中定时器的初步探索(二)

    第一篇中增加的是程序代码的实现,本篇我们将通过配置文件进行定时器的配置,减少代码量,提高灵活性. 1.需要用到的文件:quartz.properties,据说这个文件如果没有的话,按默认的走,结果布署 ...

  2. Springboot与ActiveMQ、Solr、Redis中分布式事物的初步探索

    Springboot与ActiveMQ.Solr.Redis中分布式事物的初步探索 解决的场景:事物中的异步问题,当要求数据库与solr服务器的最终一致时. 程序条件: 利用消息队列,当数据库添加成功 ...

  3. NoSQL初探之人人都爱Redis:(4)Redis主从复制架构初步探索

    一.主从复制架构简介 通过前面几篇的介绍中,我们都是在单机上使用Redis进行相关的实践操作,从本篇起,我们将初步探索一下Redis的集群,而集群中最经典的架构便是主从复制架构.那么,我们首先来了解一 ...

  4. 【转】 NoSQL初探之人人都爱Redis:(4)Redis主从复制架构初步探索

    一.主从复制架构简介 通过前面几篇的介绍中,我们都是在单机上使用Redis进行相关的实践操作,从本篇起,我们将初步探索一下Redis的集群,而集群中最经典的架构便是主从复制架构.那么,我们首先来了解一 ...

  5. jfinal中如何使用过滤器监控Druid监听SQL执行?

    摘要:最开始我想做的是通过拦截器拦截SQL执行,但是经过测试发现,过滤器至少可以监听每一个SQL的执行与返回结果.因此,将这一次探索过程记录下来. 本文分享自华为云社区<jfinal中使用过滤器 ...

  6. Unity3D中定时器的使用

    源地址:http://unity3d.9tech.cn/news/2014/0402/40149.html 在游戏设计过程中定时器是必不可少的工具,我们知道update方法是MonoBehavior中 ...

  7. PHP 中 config.m4 的探索

    PHP 中 config.m4 的探索 最近在看php扩展相关的东西,虽然来来回回编辑了好多次config.m4,并且也在技术社区看到了 config.m4是什么?什么作用? 类的问题,但是还是觉得有 ...

  8. WPF中定时器与进度条的配合使用

    WPF中定时器使用的注意事项: WPF需要使用System.Windows.Threading.DispatcherTimer定时器,而不能使用System.Timers.Timer定时器.因为Sys ...

  9. [转]Qt中定时器使用的两种方法

    Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类. 其精确度一般依赖于操作系统和硬件,但一般支持20ms.下面将分别介绍两种方法来使用定时器. 方法 ...

随机推荐

  1. 【转】使用Xcode 6将你的项目本地化

    原文转自:http://www.cocoachina.com/ios/20141004/9827.html iOS和OSX支持40种语言的本地化,Xcode无疑为这一过程提供了强有力的支持.苹果将这一 ...

  2. java学习第十天

    第十二次课 目标 一维数组(创建访问) 一.概念与特点 1.概念 相同数据类型的有序集合[] 数组名: 容器的名字 元素:  下标变量,数组名[下标] 长度:  length 下标:   位置.索引  ...

  3. php求文件的相对路径

    php转义字符的应用,\为转义字符需要转义为\\. <?php //求b相对a的路径 $a="d:\web\file\ab.php"; $b="d:\web\fil ...

  4. Day02_JAVA语言基础第二天

    1.常量(理解) 1.概念         在程序运行过程中,其值不会发生改变的量 2.分类(掌握) A .字面值常量 整数常量:1,2,-3 小数常量:2.3,-232.3 字符常量:'A' 字符串 ...

  5. Sprint第二个冲刺(第三天)

    一.Sprint 计划会议:        今天我们召开了第二个Sprint的第三次会议,会议上我们把各自完成的情况进行了一次总结,现在主界面和美化按钮.增添图片的功能已经完成了,Doing里面的其他 ...

  6. HDU 5748 最长上升子序列的长度nlogn(固定尾部)

    Bellovin Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  7. hdu1712 ACboy needs your help 分组背包

    最基础的分组背包~ #include <iostream> #include <cstdio> #include <cstdlib> #include <cs ...

  8. 作业 for liao

    AD620 芯片 93 dB min Common-Mode Rejection Ratio (G = 10) 0.28 mV p-p Noise (0.1 Hz to 10 Hz) THEORY O ...

  9. 远程升级openSSH

    1.确认安装了telnet服务,并且telnet服务能正常运行 查询是否安装了telnet服务:rpm -qa telnet 如果显示出 类似于telnet-server-0.17-31.EL4.5这 ...

  10. scala言语基础学习十二