This commit is contained in:
redkale
2023-12-29 14:39:12 +08:00
parent 372f96b3a9
commit 718dfc6fd1
4 changed files with 29 additions and 15 deletions

View File

@@ -6,19 +6,19 @@
&emsp;&emsp;&emsp;&emsp; 4、修饰不能是```final```/```static``` <br>
&emsp;&emsp;本地缓存和远程缓存可同时设置,```expire```设置为0表示永不过期, 支持异步方法(返回类型为```CompletableFuture```)。
# 属性说明
## 属性说明
|属性|默认值|说明|
| --- | --- | --- |
|key|未定义|缓存的key支持参数动态组合比如"key_#{id}"|
|hash|```DEFAULT_HASH```|缓存的hash, 不能含有':'、'#'、'@'字符|
|localExpire|-1|本地缓存过期时长, 0表示永不过期 -1表示不作本地缓存。 <br> 参数值支持方式:<br> 100: 设置数值 <br> 5*60: 乘法表达式值为30 <br> ${env.cache.expires}: 读取系统配置项 <br> #delays: 读取宿主对象的delays字段值作为值字段类型必须是int、long数值类型, <br> &emsp;&emsp;&emsp;&emsp;&emsp; 字段类型必须是int、long数值类型 |
|remoteExpire|-1|远程缓存过期时长, 0表示永不过期 -1表示不作远程缓存。 <br> 参数值支持方式:<br> 100: 设置数值 <br> 5*60: 乘法表达式值为30 <br> ${env.cache.expires}: 读取系统配置项 <br> #delays: 读取宿主对象的delays字段值作为值字段类型必须是int、long数值类型, <br> &emsp;&emsp;&emsp;&emsp;&emsp; 字段类型必须是int、long数值类型 |
|localExpire|-1|本地缓存过期时长, 0表示永不过期 -1表示不作本地缓存。 <br> 参数值支持方式:<br> &emsp;100: 设置数值 <br> &emsp;5*60: 乘法表达式值为30 <br> &emsp;${env.cache.expires}: 读取系统配置项 <br> &emsp;#delays: 读取宿主对象的delays字段值作为值字段类型必须是int、long数值类型, <br> &emsp;&emsp;&emsp;&emsp;&emsp; 字段类型必须是int、long数值类型 |
|remoteExpire|-1|远程缓存过期时长, 0表示永不过期 -1表示不作远程缓存。 <br> 参数值支持方式:<br> &emsp;100: 设置数值 <br> &emsp;5*60: 乘法表达式值为30 <br> &emsp;${env.cache.expires}: 读取系统配置项 <br> &emsp;#delays: 读取宿主对象的delays字段值作为值字段类型必须是int、long数值类型, <br> &emsp;&emsp;&emsp;&emsp;&emsp; 字段类型必须是int、long数值类型 |
|nullable|false|是否可以缓存null值|
|timeUnit|```TimeUnit.SECONDS```|时间单位TimeUnit|
|comment|未定义|备注描述|
|mode|```LoadMode.ANY```|作用于Service模式默认值为ANY作用于所有模式Service<br> LOCAL: 表示远程模式的Service对象中的缓存功能不起作用|
# 基本用法
## 基本用法
&emsp;&emsp;将结果进行本地缓存30秒且远程缓存60秒
```java
@Cached(key = "name", localExpire = "30", remoteExpire = "60")
@@ -51,7 +51,7 @@
}
```
# 缓存配置
## 缓存配置
```xml
<!--
全局Serivce的缓存设置没配置该节点将自动创建一个。

View File

@@ -1,5 +1,5 @@
# 配置说明
## application.xml 配置:
# application.xml 配置:
```xml
<!--
文件说明:
@@ -367,7 +367,7 @@
</application>
```
## source.properties 配置:
# source.properties 配置:
```properties
# CacheSource @Resource(name="usersession")
@@ -421,7 +421,7 @@ redkale.datasource.platf.write.user = root
redkale.datasource.platf.write.password = 12345678
```
## logging.properties 配置:
# logging.properties 配置:
```properties
handlers = java.util.logging.ConsoleHandler,java.util.logging.FileHandler

View File

@@ -1,20 +1,20 @@
# 定时任务
&emsp;&emsp;@Scheduled注解在Service的方法上,实现对方法结果进行定时运行。方法必须是无参数或者```ScheduleEvent```参数。
# 属性说明
## 属性说明
|属性|默认值|说明|
| --- | --- | --- |
|name|未定义|名称, 可用于第三方实现的定时任务组件的key, 比如xxl-job的任务标识|
|cron|未定义|cron表达式也可以使用常量值: <br> @yearly、@annually、@monthly、@weekly、<br> @daily、@midnight、@hourly、@minutely <br> @1m、@2m、@3m、@5m、@10m、@15m、@30m <br> @1h、@2h、@3h、@6h <br> ${env.scheduling.cron}: 读取系统配置项|
|cron|未定义|cron表达式也可以使用常量值: <br> &emsp;@yearly、@annually、@monthly、@weekly、<br> &emsp;@daily、@midnight、@hourly、@minutely <br> &emsp;@1m、@2m、@3m、@5m、@10m、@15m、@30m <br> &emsp;@1h、@2h、@3h、@6h <br> &emsp;${env.scheduling.cron}: 读取系统配置项|
|zone|未定义|时区,```cron```有值才有效, 例如: "UTC+08"|
|fixedDelay|-1|延迟时间,负数为无效值,支持参数配置、乘法表达式和对象字段值 <br> 参数值支持方式:<br> 100: 设置数值 <br> 5*60: 乘法表达式值为30 <br> ${env.scheduling.fixedDelay}: 读取系统配置项 <br> #delays: 读取宿主对象的delays字段值作为值, <br> &emsp;&emsp;&emsp;&emsp; 字段类型必须是int、long数值类型 <br> 值大于0且fixedRate小于0则使用 ScheduledThreadPoolExecutor.scheduleWithFixedDelay |
|fixedRate|-1|周期时间,负数为无效值,支持参数配置、乘法表达式和对象字段值 <br> 参数值支持方式:<br> 100: 设置数值 <br> 5*60: 乘法表达式值为30 <br> ${env.scheduling.fixedRate}: 读取系统配置项 <br> #intervals: 读取宿主对象的intervals字段值作为值, <br> &emsp;&emsp;&emsp;&emsp;&emsp;&emsp; 字段类型必须是int、long数值类型 <br> 值大于0且fixedRate小于0则使用 ScheduledThreadPoolExecutor.scheduleAtFixedRate |
|initialDelay|-1|起始延迟时间,负数为无效值,支持参数配置、乘法表达式和对象字段值 <br> 参数值支持方式:<br> 100: 设置数值 <br> 5*60: 乘法表达式值为30 <br> ${env.scheduling.initialDelay}: 读取系统配置项 <br> #inits: 读取宿主对象的inits字段值作为值, <br> &emsp;&emsp;&emsp;&emsp;字段类型必须是int、long数值类型 <br> 值大于0且fixedRate和fixedDelay小于0则使用 ScheduledThreadPoolExecutor.schedule |
|fixedDelay|-1|延迟时间,负数为无效值,支持参数配置、乘法表达式和对象字段值 <br> 参数值支持方式:<br> &emsp;100: 设置数值 <br> &emsp;5*60: 乘法表达式值为30 <br> &emsp;${env.scheduling.fixedDelay}: 读取系统配置项 <br> &emsp;#delays: 读取宿主对象的delays字段值作为值, <br> &emsp;&emsp;&emsp;&emsp; 字段类型必须是int、long数值类型 <br> 值大于0且fixedRate小于0则使用 ScheduledThreadPoolExecutor.scheduleWithFixedDelay |
|fixedRate|-1|周期时间,负数为无效值,支持参数配置、乘法表达式和对象字段值 <br> 参数值支持方式:<br> &emsp;100: 设置数值 <br> &emsp;5*60: 乘法表达式值为30 <br> &emsp;${env.scheduling.fixedRate}: 读取系统配置项 <br> &emsp;#intervals: 读取宿主对象的intervals字段值作为值, <br> &emsp;&emsp;&emsp;&emsp;&emsp;&emsp; 字段类型必须是int、long数值类型 <br> 值大于0且fixedRate小于0则使用 ScheduledThreadPoolExecutor.scheduleAtFixedRate |
|initialDelay|-1|起始延迟时间,负数为无效值,支持参数配置、乘法表达式和对象字段值 <br> 参数值支持方式:<br> &emsp;100: 设置数值 <br> &emsp;5*60: 乘法表达式值为30 <br> &emsp;${env.scheduling.initialDelay}: 读取系统配置项 <br> &emsp;#inits: 读取宿主对象的inits字段值作为值, <br> &emsp;&emsp;&emsp;&emsp;字段类型必须是int、long数值类型 <br> 值大于0且fixedRate和fixedDelay小于0则使用 ScheduledThreadPoolExecutor.schedule |
|timeUnit|```TimeUnit.SECONDS```|时间单位TimeUnit|
|comment|未定义|备注描述|
|mode|```LoadMode.LOCAL```|作用于Service模式默认值为LOCAL<br> LOCAL: 表示远程模式的Service对象中的定时任务不起作用|
# 基本用法
## 基本用法
&emsp;&emsp;每秒执行
```java
@Scheduled(cron = "0/1 * * * * ?")
@@ -40,7 +40,7 @@
}
```
# 定时配置
## 定时配置
```xml
<!--
全局Serivce的定时任务设置没配置该节点将自动创建一个。

View File

@@ -118,6 +118,20 @@ public class CacheAction {
return null;
} else if ("0".equals(str)) {
return Duration.ZERO;
} else if (str.indexOf('*') > -1) {
long rs = 1;
for (String v : str.split("\\*")) {
if (!v.trim().isEmpty()) {
rs *= Long.parseLong(v.trim());
}
}
if (rs < 0) {
return null;
} else if (rs == 0) {
return Duration.ZERO;
} else {
return Duration.ofMillis(cached.getTimeUnit().toMillis(rs));
}
} else {
return Duration.ofMillis(cached.getTimeUnit().toMillis(Long.parseLong(str)));
}