diff --git a/docs/cached.md b/docs/cached.md
index 9c56f8707..b3f7e38a6 100644
--- a/docs/cached.md
+++ b/docs/cached.md
@@ -11,8 +11,8 @@
| --- | --- | --- |
|key|未定义|缓存的key,支持参数动态组合,比如"key_#{id}"|
|hash|```DEFAULT_HASH```|缓存的hash, 不能含有':'、'#'、'@'字符|
-|localExpire|-1|本地缓存过期时长, 0表示永不过期, -1表示不作本地缓存。
参数值支持方式:
100: 设置数值
5*60: 乘法表达式,值为30
${env.cache.expires}: 读取系统配置项
#delays: 读取宿主对象的delays字段值作为值,
字段类型必须是int、long数值类型 |
-|remoteExpire|-1|远程缓存过期时长, 0表示永不过期, -1表示不作远程缓存。
参数值支持方式:
100: 设置数值
5*60: 乘法表达式,值为30
${env.cache.expires}: 读取系统配置项
#delays: 读取宿主对象的delays字段值作为值,
字段类型必须是int、long数值类型 |
+|localExpire|-1|本地缓存过期时长, 0表示永不过期, -1表示不作本地缓存。
参数值支持方式:
100: 设置数值
5*60: 乘法表达式,值为300
${env.cache.expires}: 读取系统配置项
#delays: 读取宿主对象的delays字段值作为值,
字段类型必须是int、long数值类型 |
+|remoteExpire|-1|远程缓存过期时长, 0表示永不过期, -1表示不作远程缓存。
参数值支持方式:
100: 设置数值
5*60: 乘法表达式,值为300
${env.cache.expires}: 读取系统配置项
#delays: 读取宿主对象的delays字段值作为值,
字段类型必须是int、long数值类型 |
|nullable|false|是否可以缓存null值|
|timeUnit|```TimeUnit.SECONDS```|时间单位TimeUnit|
|comment|未定义|备注描述|
diff --git a/docs/scheduled.md b/docs/scheduled.md
index 465fa1fd2..b8b560e91 100644
--- a/docs/scheduled.md
+++ b/docs/scheduled.md
@@ -7,9 +7,9 @@
|name|未定义|名称, 可用于第三方实现的定时任务组件的key, 比如xxl-job的任务标识|
|cron|未定义|cron表达式,也可以使用常量值:
@yearly、@annually、@monthly、@weekly、
@daily、@midnight、@hourly、@minutely
@1m、@2m、@3m、@5m、@10m、@15m、@30m
@1h、@2h、@3h、@6h
${env.scheduling.cron}: 读取系统配置项|
|zone|未定义|时区,```cron```有值才有效, 例如: "Asia/Shanghai"|
-|fixedDelay|-1|延迟时间,负数为无效值,支持参数配置、乘法表达式和对象字段值
参数值支持方式:
100: 设置数值
5*60: 乘法表达式,值为30
${env.scheduling.fixedDelay}: 读取系统配置项
#delays: 读取宿主对象的delays字段值作为值,
字段类型必须是int、long数值类型
值大于0且fixedRate小于0则使用 ScheduledThreadPoolExecutor.scheduleWithFixedDelay |
-|fixedRate|-1|周期时间,负数为无效值,支持参数配置、乘法表达式和对象字段值
参数值支持方式:
100: 设置数值
5*60: 乘法表达式,值为30
${env.scheduling.fixedRate}: 读取系统配置项
#intervals: 读取宿主对象的intervals字段值作为值,
字段类型必须是int、long数值类型
值大于0且fixedRate小于0则使用 ScheduledThreadPoolExecutor.scheduleAtFixedRate |
-|initialDelay|-1|起始延迟时间,负数为无效值,支持参数配置、乘法表达式和对象字段值
参数值支持方式:
100: 设置数值
5*60: 乘法表达式,值为30
${env.scheduling.initialDelay}: 读取系统配置项
#inits: 读取宿主对象的inits字段值作为值,
字段类型必须是int、long数值类型
值大于0且fixedRate和fixedDelay小于0则使用 ScheduledThreadPoolExecutor.schedule |
+|fixedDelay|-1|延迟时间,负数为无效值,支持参数配置、乘法表达式和对象字段值
参数值支持方式:
100: 设置数值
5*60: 乘法表达式,值为300
${env.scheduling.fixedDelay}: 读取系统配置项
#delays: 读取宿主对象的delays字段值作为值,
字段类型必须是int、long数值类型
值大于0且fixedRate小于0则使用 ScheduledThreadPoolExecutor.scheduleWithFixedDelay |
+|fixedRate|-1|周期时间,负数为无效值,支持参数配置、乘法表达式和对象字段值
参数值支持方式:
100: 设置数值
5*60: 乘法表达式,值为300
${env.scheduling.fixedRate}: 读取系统配置项
#intervals: 读取宿主对象的intervals字段值作为值,
字段类型必须是int、long数值类型
值大于0且fixedRate小于0则使用 ScheduledThreadPoolExecutor.scheduleAtFixedRate |
+|initialDelay|-1|起始延迟时间,负数为无效值,支持参数配置、乘法表达式和对象字段值
参数值支持方式:
100: 设置数值
5*60: 乘法表达式,值为300
${env.scheduling.initialDelay}: 读取系统配置项
#inits: 读取宿主对象的inits字段值作为值,
字段类型必须是int、long数值类型
值大于0且fixedRate和fixedDelay小于0则使用 ScheduledThreadPoolExecutor.schedule |
|timeUnit|```TimeUnit.SECONDS```|时间单位TimeUnit|
|comment|未定义|备注描述|
|mode|```LoadMode.LOCAL```|作用于Service模式,默认值为:LOCAL,
LOCAL: 表示远程模式的Service对象中的定时任务不起作用|
diff --git a/src/main/java/org/redkale/cache/Cached.java b/src/main/java/org/redkale/cache/Cached.java
index 489941d70..80e98c80b 100644
--- a/src/main/java/org/redkale/cache/Cached.java
+++ b/src/main/java/org/redkale/cache/Cached.java
@@ -44,7 +44,7 @@ public @interface Cached {
* 本地缓存过期时长, 0表示永不过期, -1表示不作本地缓存。
* 参数值支持方式:
* 100: 设置数值
- * 5*60: 乘法表达式,值为30
+ * 5*60: 乘法表达式,值为300
* ${env.cache.expires}: 读取系统配置项
* #delays: 读取宿主对象的delays字段值作为值,字段类型必须是int、long数值类型
*
@@ -56,7 +56,7 @@ public @interface Cached {
* 远程缓存过期时长, 0表示永不过期, -1表示不作远程缓存。
* 参数值支持方式:
* 100: 设置数值
- * 5*60: 乘法表达式,值为30
+ * 5*60: 乘法表达式,值为300
* ${env.cache.expires}: 读取系统配置项
* #delays: 读取宿主对象的delays字段值作为值,字段类型必须是int、long数值类型
*
diff --git a/src/main/java/org/redkale/cluster/spi/HttpClusterRpcClient.java b/src/main/java/org/redkale/cluster/spi/HttpClusterRpcClient.java
index 7ea8a1e4f..032a9f4b2 100644
--- a/src/main/java/org/redkale/cluster/spi/HttpClusterRpcClient.java
+++ b/src/main/java/org/redkale/cluster/spi/HttpClusterRpcClient.java
@@ -79,8 +79,7 @@ public class HttpClusterRpcClient extends HttpRpcClient {
private CompletableFuture> httpAsync(boolean produce, Serializable userid, HttpSimpleRequest req) {
req.setTraceid(Traces.computeIfAbsent(req.getTraceid(), Traces.currentTraceid()));
String module = req.getPath();
- module = module.substring(1); //去掉/
- module = module.substring(0, module.indexOf('/'));
+ module = module.substring(1, module.indexOf('/', 1));
HttpHeaders headers = req.getHeaders();
String resname = req.getHeader(Rest.REST_HEADER_RESNAME, "");
final String localModule = module;
diff --git a/src/main/java/org/redkale/net/http/HttpRequest.java b/src/main/java/org/redkale/net/http/HttpRequest.java
index 2ff9f164b..acb93e7a7 100644
--- a/src/main/java/org/redkale/net/http/HttpRequest.java
+++ b/src/main/java/org/redkale/net/http/HttpRequest.java
@@ -233,7 +233,7 @@ public class HttpRequest extends Request {
return this;
}
- public HttpSimpleRequest createSimpleRequest(String prefixPath) {
+ public HttpSimpleRequest createSimpleRequest(String contextPath) {
HttpSimpleRequest req = new HttpSimpleRequest();
req.setBody(array.length() == 0 ? null : array.getBytes());
if (!getHeaders().isEmpty()) {
@@ -241,6 +241,9 @@ public class HttpRequest extends Request {
if (headers.contains(Rest.REST_HEADER_RPC)) { //外部request不能包含RPC的header信息
req.removeHeader(Rest.REST_HEADER_RPC);
}
+ if (headers.contains(Rest.REST_HEADER_RESNAME)) { //外部request不能包含RPC的header信息
+ req.removeHeader(Rest.REST_HEADER_RESNAME);
+ }
if (headers.contains(Rest.REST_HEADER_CURRUSERID)) { //外部request不能包含RPC的header信息
req.removeHeader(Rest.REST_HEADER_CURRUSERID);
}
@@ -250,11 +253,11 @@ public class HttpRequest extends Request {
req.setRemoteAddr(getRemoteAddr());
req.setLocale(getLocale());
req.setContentType(getContentType());
- req.setContextPath(prefixPath);
+ req.setContextPath(contextPath);
req.setMethod(this.method);
String path0 = this.requestPath;
- if (isNotEmpty(prefixPath) && path0.startsWith(prefixPath)) {
- path0 = path0.substring(prefixPath.length());
+ if (isNotEmpty(contextPath) && path0.startsWith(contextPath)) {
+ path0 = path0.substring(contextPath.length());
}
req.setPath(path0);
req.setSessionid(getSessionid(false));
@@ -353,7 +356,7 @@ public class HttpRequest extends Request {
this.keepAlive = false; //文件上传必须设置keepAlive为false,因为文件过大时用户不一定会skip掉多余的数据
}
//completed=true时ProtocolCodec会继续读下一个request
- this.completed = !this.boundary && !maybews && this.headerParsed;
+ this.completed = !this.boundary && !maybews && this.headerParsed;
this.readState = READ_STATE_BODY;
}
if (this.readState == READ_STATE_BODY) {
diff --git a/src/main/java/org/redkale/schedule/Scheduled.java b/src/main/java/org/redkale/schedule/Scheduled.java
index 29aa08257..a524460f4 100644
--- a/src/main/java/org/redkale/schedule/Scheduled.java
+++ b/src/main/java/org/redkale/schedule/Scheduled.java
@@ -51,7 +51,7 @@ public @interface Scheduled {
* 延迟时间,支持参数配置、乘法表达式和对象字段值
* 参数值支持方式:
* 100: 设置数值
- * 5*60: 乘法表达式,值为30
+ * 5*60: 乘法表达式,值为300
* ${env.scheduling.fixedDelay}: 读取系统配置项
* #delays: 读取宿主对象的delays字段值作为值,字段类型必须是int、long数值类型
*
@@ -65,7 +65,7 @@ public @interface Scheduled {
* 周期时间,支持参数配置、乘法表达式和对象字段值
* 参数值支持方式:
* 100: 设置数值
- * 5*60: 乘法表达式,值为30
+ * 5*60: 乘法表达式,值为300
* ${env.scheduling.fixedRate}: 读取系统配置项
* #intervals: 读取宿主对象的intervals字段值作为值,字段类型必须是int、long数值类型
*
@@ -79,7 +79,7 @@ public @interface Scheduled {
* 起始延迟时间,支持参数配置、乘法表达式和对象字段值
* 参数值支持方式:
* 100: 设置数值
- * 5*60: 乘法表达式,值为30
+ * 5*60: 乘法表达式,值为300
* ${env.scheduling.initialDelay}: 读取系统配置项
* #inits: 读取宿主对象的inits字段值作为值,字段类型必须是int、long数值类型
*