Jfinal中定时器的初步探索(一)
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中定时器的初步探索(一)的更多相关文章
- Jfinal中定时器的初步探索(二)
第一篇中增加的是程序代码的实现,本篇我们将通过配置文件进行定时器的配置,减少代码量,提高灵活性. 1.需要用到的文件:quartz.properties,据说这个文件如果没有的话,按默认的走,结果布署 ...
- Springboot与ActiveMQ、Solr、Redis中分布式事物的初步探索
Springboot与ActiveMQ.Solr.Redis中分布式事物的初步探索 解决的场景:事物中的异步问题,当要求数据库与solr服务器的最终一致时. 程序条件: 利用消息队列,当数据库添加成功 ...
- NoSQL初探之人人都爱Redis:(4)Redis主从复制架构初步探索
一.主从复制架构简介 通过前面几篇的介绍中,我们都是在单机上使用Redis进行相关的实践操作,从本篇起,我们将初步探索一下Redis的集群,而集群中最经典的架构便是主从复制架构.那么,我们首先来了解一 ...
- 【转】 NoSQL初探之人人都爱Redis:(4)Redis主从复制架构初步探索
一.主从复制架构简介 通过前面几篇的介绍中,我们都是在单机上使用Redis进行相关的实践操作,从本篇起,我们将初步探索一下Redis的集群,而集群中最经典的架构便是主从复制架构.那么,我们首先来了解一 ...
- jfinal中如何使用过滤器监控Druid监听SQL执行?
摘要:最开始我想做的是通过拦截器拦截SQL执行,但是经过测试发现,过滤器至少可以监听每一个SQL的执行与返回结果.因此,将这一次探索过程记录下来. 本文分享自华为云社区<jfinal中使用过滤器 ...
- Unity3D中定时器的使用
源地址:http://unity3d.9tech.cn/news/2014/0402/40149.html 在游戏设计过程中定时器是必不可少的工具,我们知道update方法是MonoBehavior中 ...
- PHP 中 config.m4 的探索
PHP 中 config.m4 的探索 最近在看php扩展相关的东西,虽然来来回回编辑了好多次config.m4,并且也在技术社区看到了 config.m4是什么?什么作用? 类的问题,但是还是觉得有 ...
- WPF中定时器与进度条的配合使用
WPF中定时器使用的注意事项: WPF需要使用System.Windows.Threading.DispatcherTimer定时器,而不能使用System.Timers.Timer定时器.因为Sys ...
- [转]Qt中定时器使用的两种方法
Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类. 其精确度一般依赖于操作系统和硬件,但一般支持20ms.下面将分别介绍两种方法来使用定时器. 方法 ...
随机推荐
- 钉子和小球_DP
Description 有一个三角形木板,竖直立放,上面钉着n(n+1)/2颗钉子,还有(n+1)个格子(当n=5时如图1).每颗钉子和周围的钉子的距离都等于d,每个格子的宽度也都等于d,且除了最左端 ...
- Asp.net操作Excel----NPOI!!!!1
前言 Asp.net操作Excel已经是老生长谈的事情了,可下面我说的这个NPOI操作Excel,应该是最好的方案了,没有之一,使 用NPOI能够帮助开发者在没有安装微软Office的情况下读写Off ...
- Python CSV模块处理文件读写
下面是一个简单的csv文件 Title,Release Date,Director And Now For Something Completely Different,1971,Ian MacNau ...
- PAT (Basic Level) Practise:1039. 到底买不买
[题目链接] 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有 ...
- 服务调用方案(Spring Http Invoker) - 我们到底能走多远系列(40)
我们到底能走多远系列(40) 扯淡: 判断是否加可以效力于这家公司,一个很好的判断是,接触下这公司工作几年的员工,了解下生活工作状态,这就是你几年后的状态,如果满意就可以考虑加入了. 主题: 场景: ...
- 在centos使用rpm包的方式安装mysql,以及更改root密码
在centos使用rpm包的方式安装mysql,对于centos官方实际推荐使用yum进行安装,下载安装的方式主要用于内网服务器不能连接外网yum源的情况. 下载包 首先根据centos版本在mysq ...
- Java-->IO流模拟实现用户登录以及登录信息
--> Test 测试类 package com.dragon.java.hwlogin; import java.io.FileNotFoundException; import java.u ...
- [转载]NoSQL by Martin Flower
============================================================== URL1 nosql ========================== ...
- 横向滚动条展示 css
<div class="shuaixuan" style="overflow:hidden;"> <div style="ov ...
- Base64编码的实现(三种方式)
package com.smart.base; import org.apache.commons.codec.binary.Base64; public class Base64Test { pri ...