Jfinal实现定时任务调度

很多时候,我们会遇到让系统自动执行某段代码去执行业务相关逻辑。如生日短信通知,我们需要一个定时任务,获取到生日当天的所有用户,然后执行短信推送等业务逻辑,Jfinal是如何实现定时任务调度呢?

第一步:在Jfinal的过滤器中的configPlugin方法中加入自己实现的jfinal插件接口类配置。

@Override
public void configPlugin(Plugins me){
QuartzPlugin plugin = new QuartzPlugin("job.properties");
me.add(plugin);
//...数据源等其他配置
}

其中QuartzPlugin类的代码如下:
package com.wlkj.common.config;

import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Properties;

import org.apache.log4j.Logger;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

import com.jfinal.plugin.IPlugin;

public class QuartzPlugin implements IPlugin {

private final Logger logger = Logger.getLogger(QuartzPlugin.class);

private static final String JOB = "job";

private String config = "job.properties";

private Properties properties;

public QuartzPlugin(String config) {
    this.config = config;
}
public QuartzPlugin() {
}
private SchedulerFactory schedulerFactory;
private Scheduler scheduler;

@SuppressWarnings("unchecked")
public boolean start() {
    try {
        loadProperties();
    } catch (IOException e) {
        logger.error(e.getMessage());
        return false;
    }
    if (properties == null) {
        return false;
    }
    schedulerFactory = new StdSchedulerFactory();
    try {
        scheduler = schedulerFactory.getScheduler();
    } catch (SchedulerException e) {
        logger.error(e.getMessage());
        return false;
    }
    if (scheduler == null) {
        logger.error("scheduler is null");
        return false;
    }
    Enumeration<Object> enums = properties.keys();
    while (enums.hasMoreElements()) {
        String key = enums.nextElement() + "";
        if (!key.endsWith(JOB) || !isTrue(getJobKey(key, "enable"))) {
            con
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄宝康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值