Skip to content

Commit 9baf574

Browse files
authored
Merge pull request #180 from JiazhenBao/main
运行时定时任务依赖库开源
2 parents ece795c + be813af commit 9baf574

15 files changed

+921
-0
lines changed

runtime_tasks_ext/README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# 依赖库名称
2+
当前平台的定时任务能力基于quartz框架。在可视化界面中,可以为某个逻辑设置定时任务的表达式。当制品启动时,根据表达式生成相应的定时任务代码。每个任务对应的逻辑会生成一个handler/job类,该类中包含一个execute方法用于执行任务内容(即逻辑内容)。然而,由于它是基于代码的,仅允许用户在编译前管理定时任务。因此无法在运行时满足客户的需求,即无法动态增加或删除任务。
3+
4+
## 逻辑详情
5+
6+
### 逻辑一 初始化注册任务(持久化)registerInit
7+
本接口需要在初始化时执行。它用于注册3个定时任务持久化逻辑,逻辑须在IDE实现操作数据库。并且执行logicFunctionList获取当前数据库中所有定时任务,加载到内存中,触发定时任务的启动。IDE中相关操作见使用说明。
8+
9+
### 逻辑二 注册逻辑addLogic
10+
11+
本接口用于把IDE中需要供用户配置定时任务的逻辑,注册到逻辑池中。注册到逻辑池的逻辑,才可以被应用使用者配置任务执行规则。本接口需要在初始化时将所有逻辑注册成功。
12+
13+
### 逻辑三 查询所有逻辑(右模糊匹配)listLogic
14+
本接口用于查询逻辑池中所有逻辑。
15+
16+
### 逻辑四 立即执行逻辑runLogic
17+
本接口用于执行逻辑池中某个逻辑,可传入入参。
18+
19+
### 逻辑五 创建定时任务createTask
20+
通过本接口将逻辑和cron、入参字符串传入,即可创建定时任务。若接口1传入了持久化逻辑,定时任务会持久化到数据库。
21+
22+
### 逻辑六 查询已已执行的任务列表(右模糊匹配)listTask
23+
查询内存中已经启动的任务。
24+
25+
### 逻辑七 删除定时任务deleteTask
26+
通过taskId删除定时任务。
27+
28+
### 逻辑八 暂停任务pauseTask
29+
通过taskId暂停定时任务。
30+
31+
### 逻辑九 启动任务startTask
32+
通过taskId启动定时任务。
33+
34+
## 使用步骤说明
35+
见操作文档

runtime_tasks_ext/pom.xml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>org.springframework.boot</groupId>
8+
<artifactId>spring-boot-starter-parent</artifactId>
9+
<version>2.2.9.RELEASE</version><!--与当前制品应用默认版本统一-->
10+
<relativePath/> <!-- lookup parent from repository -->
11+
</parent>
12+
13+
<groupId>com.netease</groupId>
14+
<artifactId>runtime_tasks</artifactId>
15+
<version>0.2.1</version>
16+
17+
<properties>
18+
<maven.compiler.source>8</maven.compiler.source>
19+
<maven.compiler.target>8</maven.compiler.target>
20+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
21+
<nasl.ide.version>3.3</nasl.ide.version>
22+
</properties>
23+
<dependencies>
24+
<!--本案例是本地系统引入nasl-metadata-collector-0.8.0.jar的方式。
25+
若把nasl-metadata-collector-0.8.0.jar安装到自己的maven仓库,
26+
注意修改artifactId和groupId的情况下,不要使用<scope>system</scope>,会在发布时造成依赖中断。
27+
不修改artifactId和groupId的情况下,nasl-metadata-maven-plugin会做特殊处理-->
28+
<dependency>
29+
<artifactId>nasl-metadata-collector</artifactId>
30+
<groupId>com.netease.lowcode</groupId>
31+
<version>0.8.0</version>
32+
</dependency>
33+
<dependency>
34+
<groupId>com.alibaba</groupId>
35+
<artifactId>fastjson</artifactId>
36+
<version>1.2.83</version>
37+
</dependency>
38+
<dependency>
39+
<groupId>org.slf4j</groupId>
40+
<artifactId>slf4j-api</artifactId>
41+
<!-- <scope>provided</scope>-->
42+
</dependency>
43+
<!--制品应用使用Springboot框架,父应用引用了的包,为了防止版本冲突,scope可设置为provided-->
44+
<dependency>
45+
<groupId>org.springframework.boot</groupId>
46+
<artifactId>spring-boot-starter-web</artifactId>
47+
<scope>provided</scope>
48+
</dependency>
49+
<dependency>
50+
<groupId>org.springframework.boot</groupId>
51+
<artifactId>spring-boot-starter-test</artifactId>
52+
<scope>test</scope>
53+
</dependency>
54+
</dependencies>
55+
<build>
56+
<plugins>
57+
<plugin>
58+
<groupId>com.netease.lowcode</groupId>
59+
<artifactId>nasl-metadata-maven-plugin</artifactId>
60+
<version>1.3.0</version>
61+
<configuration>
62+
<jarWithDependencies>false</jarWithDependencies>
63+
</configuration>
64+
<executions>
65+
<execution>
66+
<goals>
67+
<goal>archive</goal>
68+
</goals>
69+
</execution>
70+
</executions>
71+
</plugin>
72+
</plugins>
73+
</build>
74+
</project>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.netease.lib.tasks;
2+
3+
/**
4+
* 依赖库自动扫描类
5+
* @author system
6+
*/
7+
public class LibraryAutoScan {
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.netease.lib.tasks;
2+
3+
import org.springframework.context.annotation.ComponentScan;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
/**
7+
* 加入spring环境配置(在spring.factories中指定)
8+
*/
9+
@Configuration
10+
@ComponentScan(basePackageClasses = LibraryAutoScan.class)
11+
public class RuntimeTasksBasicSpringEnvironmentConfiguration {
12+
}

0 commit comments

Comments
 (0)