JFianl框架中定时任务的使用

本文介绍了如何在JFinal项目中设置和使用定时任务。首先在pom.xml中引入相关依赖,然后在配置类DemoConfig.java中,通过QuartzPlugin加载任务调度配置文件quartz.properties和jobs.properties。jobs.properties用于定义定时任务,而实现Job的类是任务的具体执行者。同时,quartz.properties中配置了数据库连接,并通过WallFilter防止SQL注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.pom.xml中

<!-- 调度任务 -->
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.2</version>
        </dependency>

2.配置类中 DemoConfig.java

@Override
    public void configPlugin(Plugins plugins) {
        //读取xxx.sql文件 该文件定义了项目需要的sql语句 增删改查之类
        //例如:
        //#sql("removeAddress")
        //UPDATE user SET `status` = ? WHERE user_id = ?
        //#end
        
        arp.setBaseSqlTemplatePath(PathKit.getRootClassPath() + "/sqls");
        arp.addSqlTemplate("all.sql");



        //配置quartz插件
        plugins.add(new QuartzPlugin());

    }

QuartzPlugin类是implements IPlugin 的类
它加载了任务调度的配置文件quartz.properties和jobs.properties
加载的定时任务存放在Map中;以及获得cron表达式,最终从jobs.properties中获得
2.1 jobs.properties 配置文件中

#定时更新(每一分钟执行一次)
a.job= job执行的任务
a.cron=0 0/1 * * * ?  //这里是jfinal的cron表达式,跟原生的表达式稍微有些区别
a.enable=true

xxxx.job=com.job.OneDayJob//任务调度的类
xxxx.cron=0 58 23 ? * *//cron表达式 我这个是每天的23:58执行一次
xxxx.enable=true  //是否开启  true开  false关闭

2.2 任务调度的类 实现Job的类

public class OneDayJob implements Job {
    //一定要实现 Job这个类
    //这是个抽象方法
    public void execute(JobExecutionContext arg0) throws JobExecutionException {
        try {
                   System.out.println("--------任务调度-----");          

        } catch (Exception e) {
            System.out.println("一天任务调度失败");
        }
    }
}

2.3 quartz.properties 配置文件


# 调度器属性
org.quartz.scheduler.instanceName=myScheduler
org.quartz.scheduler.instanceId=AUTO
org.quartz.scheduler.skipUpdateCheck=true

# 线程池属性
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount=5
org.quartz.threadPool.threadPriority=5

# 存储方式
org.quartz.jobStore.misfireThreshold=600000
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.useProperties=false
org.quartz.jobStore.dataSource=my
org.quartz.jobStore.tablePrefix=qrtz_
org.quartz.jobStore.isClustered=true
org.quartz.jobStore.clusterCheckinInterval=20000

# 提供数据库连接
org.quartz.dataSource.my.connectionProvider.class= 数据库连接类

数据库连接类实现ConnectionProvider
读取database.properties 配置文件内容 并初始化连接,进行初始化时添加:
WallFilter wallFilter = new WallFilter();
为了防御SQL注入攻击

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值