tio-boot jfinal-plugins整合cron4j

## tio-boot jfinal-plugins整合cron4j

tio-boot 是一个基于Java的网络编程框架,用于快速开发高性能的网络应用程序。

cron4j 是一个广泛使用的定时任务框架


整合ecache需要用到jfinal-plugins

https://central.sonatype.com/artifact/com.litongjava/jfinal-plugins


### 添加依赖

```
  <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.1%20Overview.html

```
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("执行任务");
  }
}
```


启动服务,观察任务是否执行


评论区

热门分享

扫码入社