tio-boot jfinal-plugins整合cron4j
tio-boot 是一个基于Java的网络编程框架,用于快速开发高性能的网络应用程序。
cron4j 是一个广泛使用的定时任务框架
整合ecache需要用到jfinal-plugins
https://central.sonatype.com/artifact/com.litongjava/jfinal-p...
添加依赖
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<graalvm.version>23.1.1</graalvm.version>
<tio.boot.version>1.3.0</tio.boot.version>
<lombok-version>1.18.30</lombok-version>
<hotswap-classloader.version>1.2.1</hotswap-classloader.version>
<final.name>web-hello</final.name>
<main.class>com.litongjava.tio.web.hello.HelloApp</main.class>
</properties>
<dependencies>
<dependency>
<groupId>com.litongjava</groupId>
<artifactId>tio-boot</artifactId>
<version>${tio.boot.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok-version}</version>
<optional>true</optional>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.litongjava</groupId>
<artifactId>hotswap-classloader</artifactId>
<version>${hotswap-classloader.version}</version>
</dependency>
<dependency>
<groupId>com.litongjava</groupId>
<artifactId>jfinal-plugins</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>activerecord</artifactId>
<version>5.1.2</version>
</dependency>
</dependencies>
依赖解释
- tio-boot是框架核心,
- jfinal-plugins提供与Ehcache的集成
- activerecord jfinal-plugins依赖jfinal-plugins
jfinal-plugins依赖如下
cron4j:2.2.5
ehcache-core:2.6.11
jedis:3.6.3
fst:2.57
Cron4jPluginConfig 配置类
这个类是一个配置类,用于初始化和配置 Cron4j 插件。它通过 @Configuration
注解标记为配置类。类中的方法 cron4jPlugin
通过 @Bean
注解标记为Bean方法,框架启动时会执行该方法并将返回值放到bean容器中。在这个方法中,创建了一个 Plugin
实例并启动它。destroyMethod指定在服务关闭时将会调用该方法,关闭该插件
cron4j插件的表达式和其他框架和语言的表达式不同,具体请参考文档
https://litongjava.github.io/jfinal-doc/en/9%20Cron4jPlugin/9...
package com.litongjava.tio.web.hello.config;
import com.litongjava.jfinal.aop.annotation.Bean;
import com.litongjava.jfinal.aop.annotation.Configuration;
import com.litongjava.jfinal.plugin.cron4j.Cron4jPlugin;
import com.litongjava.tio.web.hello.task.MyTask;
@Configuration
public class Cron4jPluginConfig {
@Bean(destroyMethod = "stop")
public Cron4jPlugin cron4jPlugin() {
Cron4jPlugin cp = new Cron4jPlugin();
// 每1分钟执行一次
cp.addTask("* * * * * ", new MyTask());
cp.start();
return cp;
}
}
创建一个任务
package com.litongjava.tio.web.hello.task;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class MyTask implements Runnable {
@Override
public void run() {
log.info("执行任务");
}
}
启动服务,测试任务是否执行
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。