jfinal+quartz实现定时任务
使用jfinal实现任务调度,主要分为以下几步:
1、注册自定义插件(Plugins)
2、quartz 配置文件
3、任务实现类 (实现job接口)
4、在jfinal项目中配置自定义插件
1、maven依赖
使用时是基于maven项目,非maven项目直接引入包即可
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.0</version>
</dependency>
2、配置文件
配置文件1:quartz.properties
org.quartz.scheduler.instanceName=MyScheduler
org.quartz.threadPool.threadCount=3//任务池大小
org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore
配置文件2:quartz-jobs.properties,本配置文件主要记录所有的定时任务信息,可以将本配置文件信息存入到数据库进行取用;
#定时任务的实现类
a.job=com.icom.sys.jobs.GetDataJob
#cron表达式
a.cron=0/5 40 * * * ?
#是否开启该任务
a.enable=true
3、注册插件Plugins
方法中的xx文件为静态公用方法;
import com.icom.sys.utils.xx;
import com.jfinal.kit.LogKit;
import com.jfinal.kit.Prop;
import com.jfinal.plugin.IPlugin;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.util.*;
public class QuartzPlugin implements IPlugin {
private SchedulerFactory sf = null;
public static Scheduler scheduler = null;
/**
* 启动Quartz
*/
@Override
@SuppressWarnings({
"rawtypes", "unchecked" })
public boolean start() {
// 创建调度工厂
sf = new StdSchedulerFactory();
try {
scheduler = sf.getScheduler();
//获取所有的任务
Properties properties = new Prop("quartz-jobs.properties").getProperties();
Set keyValue = properties