mqtt 模块添加
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
/water-admin/target/
|
/water-admin/target/
|
||||||
/water-common/*/target/
|
/water-common/*/target/
|
||||||
/water-modules/*/target/
|
/water-modules/*/target/
|
||||||
|
/logs/
|
||||||
|
|||||||
7
.idea/compiler.xml
generated
7
.idea/compiler.xml
generated
@@ -42,6 +42,7 @@
|
|||||||
<module name="water-common-log" />
|
<module name="water-common-log" />
|
||||||
<module name="water-common-job" />
|
<module name="water-common-job" />
|
||||||
<module name="water-common-json" />
|
<module name="water-common-json" />
|
||||||
|
<module name="water-common-mqtt" />
|
||||||
<module name="water-job" />
|
<module name="water-job" />
|
||||||
<module name="water-common-social" />
|
<module name="water-common-social" />
|
||||||
<module name="water-common-core" />
|
<module name="water-common-core" />
|
||||||
@@ -54,6 +55,11 @@
|
|||||||
<module name="water-demo" />
|
<module name="water-demo" />
|
||||||
<module name="water-workflow" />
|
<module name="water-workflow" />
|
||||||
</profile>
|
</profile>
|
||||||
|
<profile name="Maven default annotation processors profile" enabled="true">
|
||||||
|
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||||
|
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||||
|
<outputRelativeToContentRoot value="true" />
|
||||||
|
</profile>
|
||||||
</annotationProcessing>
|
</annotationProcessing>
|
||||||
</component>
|
</component>
|
||||||
<component name="JavacSettings">
|
<component name="JavacSettings">
|
||||||
@@ -71,6 +77,7 @@
|
|||||||
<module name="water-common-json" options="-parameters" />
|
<module name="water-common-json" options="-parameters" />
|
||||||
<module name="water-common-log" options="-parameters" />
|
<module name="water-common-log" options="-parameters" />
|
||||||
<module name="water-common-mail" options="-parameters" />
|
<module name="water-common-mail" options="-parameters" />
|
||||||
|
<module name="water-common-mqtt" options="-parameters" />
|
||||||
<module name="water-common-mybatis" options="-parameters" />
|
<module name="water-common-mybatis" options="-parameters" />
|
||||||
<module name="water-common-oss" options="-parameters" />
|
<module name="water-common-oss" options="-parameters" />
|
||||||
<module name="water-common-ratelimiter" options="-parameters" />
|
<module name="water-common-ratelimiter" options="-parameters" />
|
||||||
|
|||||||
16
.idea/encodings.xml
generated
16
.idea/encodings.xml
generated
@@ -1,8 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
|
<component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
|
||||||
|
<file url="file://$APPLICATION_HOME_DIR$/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$APPLICATION_HOME_DIR$/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-admin/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-admin/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-admin/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-admin/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-core/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-core/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-core/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-core/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-doc/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-doc/src/main/java" charset="UTF-8" />
|
||||||
@@ -10,6 +16,7 @@
|
|||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-encrypt/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-encrypt/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-encrypt/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-encrypt/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-excel/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-excel/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-excel/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-idempotent/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-idempotent/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-idempotent/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-idempotent/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-job/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-job/src/main/java" charset="UTF-8" />
|
||||||
@@ -20,9 +27,12 @@
|
|||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-log/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-log/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-mail/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-mail/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-mail/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-mail/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-mqtt/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-mqtt/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-mybatis/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-mybatis/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-mybatis/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-mybatis/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-oss/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-oss/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-oss/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-ratelimiter/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-ratelimiter/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-ratelimiter/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-ratelimiter/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-redis/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-redis/src/main/java" charset="UTF-8" />
|
||||||
@@ -32,6 +42,7 @@
|
|||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-security/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-security/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-security/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-security/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-sensitive/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-sensitive/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-sensitive/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-sms/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-sms/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-sms/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-sms/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-social/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-social/src/main/java" charset="UTF-8" />
|
||||||
@@ -46,10 +57,14 @@
|
|||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-web/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-web/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-websocket/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-websocket/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-common/water-common-websocket/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-common/water-common-websocket/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-extend/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-extend/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-extend/water-monitor-admin/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-extend/water-monitor-admin/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-extend/water-monitor-admin/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-extend/water-monitor-admin/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-extend/water-snailjob-server/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-extend/water-snailjob-server/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-extend/water-snailjob-server/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-extend/water-snailjob-server/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-modules/water-app/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-modules/water-app/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-modules/water-app/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-modules/water-app/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-modules/water-demo/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-modules/water-demo/src/main/java" charset="UTF-8" />
|
||||||
@@ -57,6 +72,7 @@
|
|||||||
<file url="file://$PROJECT_DIR$/water-modules/water-generator/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-modules/water-generator/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-modules/water-generator/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-modules/water-generator/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-modules/water-job/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-modules/water-job/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/water-job/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-modules/water-system/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-modules/water-system/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-modules/water-system/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-modules/water-system/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/water-modules/water-workflow/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/water-modules/water-workflow/src/main/java" charset="UTF-8" />
|
||||||
|
|||||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -5,6 +5,8 @@
|
|||||||
<option name="originalFiles">
|
<option name="originalFiles">
|
||||||
<list>
|
<list>
|
||||||
<option value="$PROJECT_DIR$/pom.xml" />
|
<option value="$PROJECT_DIR$/pom.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/water-common/water-common-mqtt/pom.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/water-admin/pom.xml" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
2197
logs/sys-console.log
2197
logs/sys-console.log
File diff suppressed because it is too large
Load Diff
@@ -1,615 +1,6 @@
|
|||||||
2026-05-09 09:02:10 [snail-job-grpc-client-executor-127.0.0.1-0] ERROR c.a.s.c.j.c.r.JobExecutorRegistrar - Job executors register error requestId:[0] message:[UNAVAILABLE: io exception]
|
2026-06-03 08:07:41 [MQTT Ping: water-server] ERROR o.e.p.c.mqttv3.internal.ClientState - water-server: Timed out as no write activity, keepAlive=60,000,000,000 lastOutboundActivity=1,242,491,392,259,400 lastInboundActivity=1,242,491,421,357,900 time=1,293,117,233,745,900 lastPing=1,242,491,392,263,200
|
||||||
2026-05-09 09:02:10 [snail-job-grpc-client-executor-127.0.0.1-2] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[1] message:[UNAVAILABLE: io exception]
|
2026-06-03 11:22:23 [XNIO-1 task-2] ERROR o.d.c.s.h.SaTokenExceptionHandler - 请求地址'/app/v1/deviceList',认证失败'token 已被冻结:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJhcHBfdXNlcjoyMDU2NTQzNTA3NTE0MDk3NjY1Iiwicm5TdHIiOiI4QnM4c2RiWkdOMEFPRTVQUHZUeTFCYWtzV0ozQVVHaSIsImNsaWVudGlkIjoiNDI4YTgzMTBjZDQ0Mjc1N2FlNjk5ZGY1ZDg5NGYwNTEiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MjA1NjU0MzUwNzUxNDA5NzY2NX0.kKJvH80xg1I8iFL0-v4_aMCEGsuwYm87T19UQ7cu3l4',无法访问系统资源
|
||||||
2026-05-09 09:02:20 [snail-job-grpc-client-executor-127.0.0.1-3] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[3] message:[UNAVAILABLE: io exception]
|
2026-06-03 11:23:01 [XNIO-1 task-2] ERROR o.d.c.w.h.GlobalExceptionHandler - 访问过于频繁,请稍候再试
|
||||||
2026-05-09 09:02:30 [snail-job-grpc-client-executor-127.0.0.1-4] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[4] message:[UNAVAILABLE: io exception]
|
2026-06-03 11:45:09 [XNIO-1 task-2] ERROR o.d.c.s.h.SaTokenExceptionHandler - 请求地址'/app/v1/deviceList',认证失败'token 已被冻结:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJhcHBfdXNlcjoyMDU2NTQzNTA3NTE0MDk3NjY1Iiwicm5TdHIiOiJ2alU3OVV0dWhsYjc4azhhUDNRazM4YnJ3QVJ4MGt6MCIsImNsaWVudGlkIjoiNDI4YTgzMTBjZDQ0Mjc1N2FlNjk5ZGY1ZDg5NGYwNTEiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MjA1NjU0MzUwNzUxNDA5NzY2NSwidXNlck5hbWUiOiIxMzMwNTM3NjA1NCJ9.WkM2XneftUNQbnIm69pDDEAzocsvHZlkv6e5SRS4_48',无法访问系统资源
|
||||||
2026-05-09 09:02:40 [snail-job-grpc-client-executor-127.0.0.1-5] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[5] message:[UNAVAILABLE: io exception]
|
2026-06-03 17:44:04 [XNIO-1 task-3] ERROR o.d.c.w.h.GlobalExceptionHandler - 参数校验异常
|
||||||
2026-05-09 09:02:50 [snail-job-grpc-client-executor-127.0.0.1-6] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[6] message:[UNAVAILABLE: io exception]
|
2026-06-03 22:52:30 [XNIO-1 task-2] ERROR o.d.c.w.h.GlobalExceptionHandler - 密码输入错误1次
|
||||||
2026-05-09 09:03:00 [snail-job-grpc-client-executor-127.0.0.1-7] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[7] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:03:10 [snail-job-grpc-client-executor-127.0.0.1-9] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[8] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:03:15 [XNIO-1 task-2] ERROR o.d.c.w.h.GlobalExceptionHandler - 请求地址'/app/v1/addDevice',发生未知异常.
|
|
||||||
org.springframework.dao.DataIntegrityViolationException:
|
|
||||||
### Error updating database. Cause: java.sql.SQLException: Field 'user_id' doesn't have a default value
|
|
||||||
### The error may exist in org/dromara/app/mapper/AppDeviceMapper.java (best guess)
|
|
||||||
### The error may involve org.dromara.app.mapper.AppDeviceMapper.insert-Inline
|
|
||||||
### The error occurred while setting parameters
|
|
||||||
### SQL: INSERT INTO app_device ( id, create_dept, create_by, create_time, update_by, update_time ) VALUES ( ?, ?, ?, ?, ?, ? )
|
|
||||||
### Cause: java.sql.SQLException: Field 'user_id' doesn't have a default value
|
|
||||||
; Field 'user_id' doesn't have a default value
|
|
||||||
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:258)
|
|
||||||
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)
|
|
||||||
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:95)
|
|
||||||
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:347)
|
|
||||||
at jdk.proxy2/jdk.proxy2.$Proxy149.insert(Unknown Source)
|
|
||||||
at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:224)
|
|
||||||
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)
|
|
||||||
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:156)
|
|
||||||
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:93)
|
|
||||||
at jdk.proxy2/jdk.proxy2.$Proxy201.insert(Unknown Source)
|
|
||||||
at org.dromara.app.service.impl.AppDeviceServiceImpl.insertByBo(AppDeviceServiceImpl.java:113)
|
|
||||||
at org.dromara.app.controller.AppController.addDevice(AppController.java:89)
|
|
||||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
|
||||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
|
|
||||||
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
|
||||||
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
|
|
||||||
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:360)
|
|
||||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
|
|
||||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
|
|
||||||
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
|
|
||||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
|
|
||||||
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:728)
|
|
||||||
at org.dromara.app.controller.AppController$$SpringCGLIB$$0.addDevice(<generated>)
|
|
||||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
|
||||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
|
|
||||||
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
|
||||||
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
|
|
||||||
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:258)
|
|
||||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:191)
|
|
||||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
|
|
||||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:991)
|
|
||||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:896)
|
|
||||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
|
||||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
|
|
||||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
|
|
||||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
|
|
||||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)
|
|
||||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:547)
|
|
||||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
|
|
||||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
|
|
||||||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
|
|
||||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
|
|
||||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
|
||||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
|
|
||||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
|
||||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
|
||||||
at org.dromara.common.web.filter.RepeatableFilter.doFilter(RepeatableFilter.java:32)
|
|
||||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
|
||||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
|
||||||
at cn.dev33.satoken.filter.SaServletFilter.doFilter(SaServletFilter.java:143)
|
|
||||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
|
||||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
|
||||||
at cn.dev33.satoken.filter.SaFirewallCheckFilterForJakartaServlet.doFilter(SaFirewallCheckFilterForJakartaServlet.java:69)
|
|
||||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
|
||||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
|
||||||
at cn.dev33.satoken.filter.SaTokenCorsFilterForJakartaServlet.doFilter(SaTokenCorsFilterForJakartaServlet.java:52)
|
|
||||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
|
||||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
|
||||||
at cn.dev33.satoken.filter.SaTokenContextFilterForJakartaServlet.doFilter(SaTokenContextFilterForJakartaServlet.java:40)
|
|
||||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
|
||||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
|
||||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
|
||||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
|
|
||||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
|
||||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
|
||||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
|
||||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
|
|
||||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
|
||||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
|
||||||
at org.dromara.common.web.filter.XssFilter.doFilter(XssFilter.java:42)
|
|
||||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
|
||||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
|
||||||
at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:110)
|
|
||||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
|
|
||||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
|
||||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
|
||||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
|
||||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
|
|
||||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
|
||||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
|
||||||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
|
|
||||||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
|
|
||||||
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
|
|
||||||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
|
|
||||||
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
|
|
||||||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
|
|
||||||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
|
|
||||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
|
||||||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
|
|
||||||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
|
|
||||||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
|
|
||||||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:75)
|
|
||||||
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
|
|
||||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
|
||||||
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
|
|
||||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
|
||||||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:271)
|
|
||||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.call(ServletInitialHandler.java:130)
|
|
||||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.call(ServletInitialHandler.java:127)
|
|
||||||
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
|
|
||||||
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
|
|
||||||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:251)
|
|
||||||
at io.undertow.servlet.handlers.ServletInitialHandler.lambda$new$1(ServletInitialHandler.java:99)
|
|
||||||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:418)
|
|
||||||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:938)
|
|
||||||
at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
|
|
||||||
at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2691)
|
|
||||||
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2670)
|
|
||||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1589)
|
|
||||||
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
|
|
||||||
at java.base/java.lang.Thread.run(Thread.java:842)
|
|
||||||
Caused by: java.sql.SQLException: Field 'user_id' doesn't have a default value
|
|
||||||
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)
|
|
||||||
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:114)
|
|
||||||
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:988)
|
|
||||||
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:383)
|
|
||||||
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
|
|
||||||
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
|
|
||||||
at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362)
|
|
||||||
at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)
|
|
||||||
at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)
|
|
||||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
|
||||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
|
|
||||||
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
|
||||||
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
|
|
||||||
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
|
|
||||||
at jdk.proxy2/jdk.proxy2.$Proxy249.update(Unknown Source)
|
|
||||||
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
|
|
||||||
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
|
|
||||||
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
|
|
||||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
|
||||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
|
|
||||||
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
|
||||||
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
|
|
||||||
at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:61)
|
|
||||||
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)
|
|
||||||
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)
|
|
||||||
at jdk.proxy2/jdk.proxy2.$Proxy248.update(Unknown Source)
|
|
||||||
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
|
|
||||||
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)
|
|
||||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
|
||||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
|
|
||||||
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
|
||||||
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
|
|
||||||
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:333)
|
|
||||||
... 107 common frames omitted
|
|
||||||
2026-05-09 09:03:20 [snail-job-grpc-client-executor-127.0.0.1-10] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[10] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:03:30 [snail-job-grpc-client-executor-127.0.0.1-11] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[11] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:03:58 [snail-job-grpc-client-executor-127.0.0.1-0] ERROR c.a.s.c.j.c.r.JobExecutorRegistrar - Job executors register error requestId:[0] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:03:58 [snail-job-grpc-client-executor-127.0.0.1-2] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[1] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:04:08 [snail-job-grpc-client-executor-127.0.0.1-3] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[3] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:04:18 [snail-job-grpc-client-executor-127.0.0.1-4] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[4] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:04:28 [snail-job-grpc-client-executor-127.0.0.1-5] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[5] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:04:38 [snail-job-grpc-client-executor-127.0.0.1-6] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[6] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:04:48 [snail-job-grpc-client-executor-127.0.0.1-7] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[7] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:04:58 [snail-job-grpc-client-executor-127.0.0.1-9] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[9] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:05:08 [snail-job-grpc-client-executor-127.0.0.1-10] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[10] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:05:18 [snail-job-grpc-client-executor-127.0.0.1-11] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[11] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:05:28 [snail-job-grpc-client-executor-127.0.0.1-12] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[12] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:05:38 [snail-job-grpc-client-executor-127.0.0.1-13] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[13] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:05:48 [snail-job-grpc-client-executor-127.0.0.1-14] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[14] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:05:58 [snail-job-grpc-client-executor-127.0.0.1-15] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[15] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:06:08 [snail-job-grpc-client-executor-127.0.0.1-17] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[17] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:06:18 [snail-job-grpc-client-executor-127.0.0.1-18] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[18] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:06:28 [snail-job-grpc-client-executor-127.0.0.1-19] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[19] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:06:38 [snail-job-grpc-client-executor-127.0.0.1-20] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[20] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:06:48 [snail-job-grpc-client-executor-127.0.0.1-21] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[21] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:07:22 [snail-job-grpc-client-executor-127.0.0.1-24] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[25] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:07:22 [snail-job-grpc-client-executor-127.0.0.1-23] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[23] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:07:22 [snail-job-grpc-client-executor-127.0.0.1-25] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[24] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:07:28 [snail-job-grpc-client-executor-127.0.0.1-26] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[26] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:07:38 [snail-job-grpc-client-executor-127.0.0.1-27] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[27] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:07:48 [snail-job-grpc-client-executor-127.0.0.1-28] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[28] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:07:58 [snail-job-grpc-client-executor-127.0.0.1-30] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[29] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:08:08 [snail-job-grpc-client-executor-127.0.0.1-31] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[31] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:08:18 [snail-job-grpc-client-executor-127.0.0.1-32] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[32] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:08:28 [snail-job-grpc-client-executor-127.0.0.1-33] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[33] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:08:38 [snail-job-grpc-client-executor-127.0.0.1-34] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[34] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:08:48 [snail-job-grpc-client-executor-127.0.0.1-35] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[35] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:08:58 [snail-job-grpc-client-executor-127.0.0.1-36] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[37] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:09:08 [snail-job-grpc-client-executor-127.0.0.1-38] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[38] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:09:18 [snail-job-grpc-client-executor-127.0.0.1-39] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[39] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:09:28 [snail-job-grpc-client-executor-127.0.0.1-40] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[40] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:09:38 [snail-job-grpc-client-executor-127.0.0.1-41] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[41] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:10:03 [snail-job-grpc-client-executor-127.0.0.1-0] ERROR c.a.s.c.j.c.r.JobExecutorRegistrar - Job executors register error requestId:[0] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:10:03 [snail-job-grpc-client-executor-127.0.0.1-2] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[1] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:10:13 [snail-job-grpc-client-executor-127.0.0.1-3] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[3] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:10:23 [snail-job-grpc-client-executor-127.0.0.1-4] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[4] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:10:33 [snail-job-grpc-client-executor-127.0.0.1-5] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[5] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:10:43 [snail-job-grpc-client-executor-127.0.0.1-6] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[6] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:10:53 [snail-job-grpc-client-executor-127.0.0.1-7] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[7] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:11:03 [snail-job-grpc-client-executor-127.0.0.1-9] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[9] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:11:13 [snail-job-grpc-client-executor-127.0.0.1-10] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[10] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:11:23 [snail-job-grpc-client-executor-127.0.0.1-11] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[11] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:11:33 [snail-job-grpc-client-executor-127.0.0.1-12] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[12] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:11:43 [snail-job-grpc-client-executor-127.0.0.1-13] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[13] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:11:53 [snail-job-grpc-client-executor-127.0.0.1-14] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[14] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:12:03 [snail-job-grpc-client-executor-127.0.0.1-16] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[16] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:12:13 [snail-job-grpc-client-executor-127.0.0.1-17] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[17] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:12:23 [snail-job-grpc-client-executor-127.0.0.1-18] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[18] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:12:33 [snail-job-grpc-client-executor-127.0.0.1-19] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[19] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:12:43 [snail-job-grpc-client-executor-127.0.0.1-20] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[20] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:12:53 [snail-job-grpc-client-executor-127.0.0.1-21] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[21] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:13:03 [snail-job-grpc-client-executor-127.0.0.1-22] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[22] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:13:13 [snail-job-grpc-client-executor-127.0.0.1-24] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[24] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:13:23 [snail-job-grpc-client-executor-127.0.0.1-25] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[25] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:13:33 [snail-job-grpc-client-executor-127.0.0.1-26] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[26] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:13:43 [snail-job-grpc-client-executor-127.0.0.1-27] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[27] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:13:53 [snail-job-grpc-client-executor-127.0.0.1-28] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[28] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:14:03 [snail-job-grpc-client-executor-127.0.0.1-29] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[30] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:14:13 [snail-job-grpc-client-executor-127.0.0.1-31] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[31] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:14:14 [XNIO-1 task-2] ERROR o.d.c.s.h.SaTokenExceptionHandler - 请求地址'/system/user/getInfo',认证失败'token 已被冻结:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJwc1JkWHpCOHEwNVNiZFFlMWYwVk9IcVltNUhuVkZadiIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.heeUSHrki7ifeaNjqKQdNyDj5EC3jfqyKNAEXscqqcI',无法访问系统资源
|
|
||||||
2026-05-09 09:14:23 [snail-job-grpc-client-executor-127.0.0.1-32] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[32] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:14:33 [snail-job-grpc-client-executor-127.0.0.1-33] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[33] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:14:43 [snail-job-grpc-client-executor-127.0.0.1-34] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[34] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:14:47 [XNIO-1 task-5] ERROR o.d.c.w.h.GlobalExceptionHandler - Validation failed for argument [0] in public org.dromara.common.core.domain.R<java.lang.Void> org.dromara.system.controller.system.SysUserController.edit(org.dromara.system.domain.bo.SysUserBo): [Field error in object 'sysUserBo' on field 'userName': rejected value [null]; codes [NotBlank.sysUserBo.userName,NotBlank.userName,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [sysUserBo.userName,userName]; arguments []; default message [userName]]; default message [用户账号不能为空]]
|
|
||||||
2026-05-09 09:14:48 [XNIO-1 task-5] ERROR o.d.c.w.h.GlobalExceptionHandler - Validation failed for argument [0] in public org.dromara.common.core.domain.R<java.lang.Void> org.dromara.system.controller.system.SysUserController.edit(org.dromara.system.domain.bo.SysUserBo): [Field error in object 'sysUserBo' on field 'userName': rejected value [null]; codes [NotBlank.sysUserBo.userName,NotBlank.userName,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [sysUserBo.userName,userName]; arguments []; default message [userName]]; default message [用户账号不能为空]]
|
|
||||||
2026-05-09 09:14:53 [snail-job-grpc-client-executor-127.0.0.1-35] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[35] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:14:59 [XNIO-1 task-5] ERROR o.d.c.w.h.GlobalExceptionHandler - Validation failed for argument [0] in public org.dromara.common.core.domain.R<java.lang.Void> org.dromara.system.controller.system.SysUserController.edit(org.dromara.system.domain.bo.SysUserBo): [Field error in object 'sysUserBo' on field 'userName': rejected value [null]; codes [NotBlank.sysUserBo.userName,NotBlank.userName,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [sysUserBo.userName,userName]; arguments []; default message [userName]]; default message [用户账号不能为空]]
|
|
||||||
2026-05-09 09:15:03 [snail-job-grpc-client-executor-127.0.0.1-37] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[37] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:15:13 [snail-job-grpc-client-executor-127.0.0.1-38] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[38] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:15:23 [snail-job-grpc-client-executor-127.0.0.1-39] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[39] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:15:33 [snail-job-grpc-client-executor-127.0.0.1-40] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[40] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:15:43 [snail-job-grpc-client-executor-127.0.0.1-41] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[41] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:15:53 [snail-job-grpc-client-executor-127.0.0.1-42] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[42] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:16:03 [snail-job-grpc-client-executor-127.0.0.1-44] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[43] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:16:13 [snail-job-grpc-client-executor-127.0.0.1-45] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[45] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:16:23 [snail-job-grpc-client-executor-127.0.0.1-46] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[46] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:16:33 [snail-job-grpc-client-executor-127.0.0.1-47] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[47] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:16:43 [snail-job-grpc-client-executor-127.0.0.1-48] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[48] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:16:53 [snail-job-grpc-client-executor-127.0.0.1-49] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[49] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:17:03 [snail-job-grpc-client-executor-127.0.0.1-51] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[50] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:17:13 [snail-job-grpc-client-executor-127.0.0.1-52] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[52] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:17:23 [snail-job-grpc-client-executor-127.0.0.1-53] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[53] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:17:33 [snail-job-grpc-client-executor-127.0.0.1-54] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[54] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:17:43 [snail-job-grpc-client-executor-127.0.0.1-55] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[55] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:17:53 [snail-job-grpc-client-executor-127.0.0.1-56] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[56] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:18:03 [snail-job-grpc-client-executor-127.0.0.1-57] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[57] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:18:13 [snail-job-grpc-client-executor-127.0.0.1-59] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[59] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:18:23 [snail-job-grpc-client-executor-127.0.0.1-60] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[60] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:18:33 [snail-job-grpc-client-executor-127.0.0.1-61] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[61] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:18:43 [snail-job-grpc-client-executor-127.0.0.1-62] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[62] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:18:53 [snail-job-grpc-client-executor-127.0.0.1-63] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[63] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:19:03 [snail-job-grpc-client-executor-127.0.0.1-65] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[64] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:19:13 [snail-job-grpc-client-executor-127.0.0.1-66] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[66] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:19:23 [snail-job-grpc-client-executor-127.0.0.1-67] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[67] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:19:33 [snail-job-grpc-client-executor-127.0.0.1-68] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[68] message:[UNAVAILABLE: Channel shutdown invoked]
|
|
||||||
2026-05-09 09:19:53 [snail-job-grpc-client-executor-127.0.0.1-0] ERROR c.a.s.c.j.c.r.JobExecutorRegistrar - Job executors register error requestId:[0] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:19:53 [snail-job-grpc-client-executor-127.0.0.1-2] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[1] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:20:03 [snail-job-grpc-client-executor-127.0.0.1-3] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[3] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:20:08 [XNIO-1 task-2] ERROR o.d.c.s.h.SaTokenExceptionHandler - 请求地址'/app/v1/deviceList',权限码校验失败'无此权限:app:device:list'
|
|
||||||
2026-05-09 09:20:13 [snail-job-grpc-client-executor-127.0.0.1-4] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[4] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:20:23 [snail-job-grpc-client-executor-127.0.0.1-5] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[5] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:20:33 [snail-job-grpc-client-executor-127.0.0.1-6] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[6] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:20:43 [snail-job-grpc-client-executor-127.0.0.1-7] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[7] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:20:53 [snail-job-grpc-client-executor-127.0.0.1-8] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[9] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:21:03 [snail-job-grpc-client-executor-127.0.0.1-10] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[10] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:21:13 [snail-job-grpc-client-executor-127.0.0.1-11] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[11] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:21:23 [snail-job-grpc-client-executor-127.0.0.1-12] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[12] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:21:33 [snail-job-grpc-client-executor-127.0.0.1-13] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[13] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:21:43 [snail-job-grpc-client-executor-127.0.0.1-14] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[14] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:21:53 [XNIO-1 task-4] ERROR o.d.c.w.h.GlobalExceptionHandler - 请求地址'/system/tenant/list'不存在.
|
|
||||||
2026-05-09 09:21:53 [snail-job-grpc-client-executor-127.0.0.1-15] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[15] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:21:55 [XNIO-1 task-4] ERROR o.d.c.w.h.GlobalExceptionHandler - 请求地址'/system/tenant/package/list'不存在.
|
|
||||||
2026-05-09 09:22:03 [snail-job-grpc-client-executor-127.0.0.1-17] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[17] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:22:13 [snail-job-grpc-client-executor-127.0.0.1-18] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[18] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:22:23 [snail-job-grpc-client-executor-127.0.0.1-19] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[19] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:22:33 [snail-job-grpc-client-executor-127.0.0.1-20] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[20] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:22:41 [XNIO-1 task-5] ERROR o.d.c.w.h.GlobalExceptionHandler - 本部门及以下已分配,不能删除!
|
|
||||||
2026-05-09 09:22:43 [snail-job-grpc-client-executor-127.0.0.1-21] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[21] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:22:53 [snail-job-grpc-client-executor-127.0.0.1-23] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[22] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:23:03 [snail-job-grpc-client-executor-127.0.0.1-24] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[24] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:23:13 [snail-job-grpc-client-executor-127.0.0.1-25] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[25] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:23:23 [snail-job-grpc-client-executor-127.0.0.1-26] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[26] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:23:33 [snail-job-grpc-client-executor-127.0.0.1-27] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[27] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:23:43 [snail-job-grpc-client-executor-127.0.0.1-28] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[28] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:23:53 [snail-job-grpc-client-executor-127.0.0.1-29] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[29] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:24:03 [snail-job-grpc-client-executor-127.0.0.1-31] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[31] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:24:13 [snail-job-grpc-client-executor-127.0.0.1-32] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[32] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:24:23 [snail-job-grpc-client-executor-127.0.0.1-33] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[33] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:24:33 [snail-job-grpc-client-executor-127.0.0.1-34] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[34] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:24:43 [snail-job-grpc-client-executor-127.0.0.1-35] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[35] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:24:53 [snail-job-grpc-client-executor-127.0.0.1-36] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[36] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:25:03 [snail-job-grpc-client-executor-127.0.0.1-38] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[38] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:25:13 [snail-job-grpc-client-executor-127.0.0.1-39] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[39] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:25:23 [snail-job-grpc-client-executor-127.0.0.1-40] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[40] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:25:33 [snail-job-grpc-client-executor-127.0.0.1-41] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[41] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:25:43 [snail-job-grpc-client-executor-127.0.0.1-42] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[42] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:25:53 [snail-job-grpc-client-executor-127.0.0.1-44] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[44] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:26:03 [snail-job-grpc-client-executor-127.0.0.1-45] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[45] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:26:13 [snail-job-grpc-client-executor-127.0.0.1-46] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[46] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:26:23 [snail-job-grpc-client-executor-127.0.0.1-47] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[47] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:26:33 [snail-job-grpc-client-executor-127.0.0.1-48] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[48] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:26:43 [snail-job-grpc-client-executor-127.0.0.1-49] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[49] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:26:53 [snail-job-grpc-client-executor-127.0.0.1-50] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[51] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:27:03 [snail-job-grpc-client-executor-127.0.0.1-52] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[52] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:27:13 [snail-job-grpc-client-executor-127.0.0.1-53] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[53] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:27:23 [snail-job-grpc-client-executor-127.0.0.1-54] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[54] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:27:33 [snail-job-grpc-client-executor-127.0.0.1-55] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[55] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:27:43 [snail-job-grpc-client-executor-127.0.0.1-56] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[56] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:27:53 [snail-job-grpc-client-executor-127.0.0.1-58] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[57] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:28:03 [snail-job-grpc-client-executor-127.0.0.1-59] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[59] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:28:13 [snail-job-grpc-client-executor-127.0.0.1-60] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[60] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:28:23 [snail-job-grpc-client-executor-127.0.0.1-61] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[61] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:28:33 [snail-job-grpc-client-executor-127.0.0.1-62] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[62] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:28:43 [snail-job-grpc-client-executor-127.0.0.1-63] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[63] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:28:53 [snail-job-grpc-client-executor-127.0.0.1-64] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[64] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:29:03 [snail-job-grpc-client-executor-127.0.0.1-66] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[66] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:29:13 [snail-job-grpc-client-executor-127.0.0.1-67] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[67] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:29:23 [snail-job-grpc-client-executor-127.0.0.1-68] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[68] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:29:33 [snail-job-grpc-client-executor-127.0.0.1-69] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[69] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:29:43 [snail-job-grpc-client-executor-127.0.0.1-70] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[70] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:29:53 [snail-job-grpc-client-executor-127.0.0.1-71] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[72] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:30:03 [snail-job-grpc-client-executor-127.0.0.1-73] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[73] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:30:13 [snail-job-grpc-client-executor-127.0.0.1-74] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[74] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:30:23 [snail-job-grpc-client-executor-127.0.0.1-75] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[75] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:30:33 [snail-job-grpc-client-executor-127.0.0.1-76] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[76] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:30:43 [snail-job-grpc-client-executor-127.0.0.1-77] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[77] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:30:53 [snail-job-grpc-client-executor-127.0.0.1-78] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[79] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:31:03 [snail-job-grpc-client-executor-127.0.0.1-80] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[80] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:31:13 [snail-job-grpc-client-executor-127.0.0.1-81] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[81] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:31:23 [snail-job-grpc-client-executor-127.0.0.1-82] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[82] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:31:33 [snail-job-grpc-client-executor-127.0.0.1-83] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[83] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:31:43 [snail-job-grpc-client-executor-127.0.0.1-84] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[84] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:31:53 [snail-job-grpc-client-executor-127.0.0.1-86] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[86] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:32:03 [snail-job-grpc-client-executor-127.0.0.1-87] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[87] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:32:13 [snail-job-grpc-client-executor-127.0.0.1-88] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[88] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:32:23 [snail-job-grpc-client-executor-127.0.0.1-89] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[89] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:32:33 [snail-job-grpc-client-executor-127.0.0.1-90] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[90] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:32:43 [snail-job-grpc-client-executor-127.0.0.1-91] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[91] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:32:53 [snail-job-grpc-client-executor-127.0.0.1-92] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[92] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:33:03 [snail-job-grpc-client-executor-127.0.0.1-94] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[94] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:33:13 [snail-job-grpc-client-executor-127.0.0.1-95] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[95] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:33:23 [snail-job-grpc-client-executor-127.0.0.1-96] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[96] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:33:33 [snail-job-grpc-client-executor-127.0.0.1-97] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[97] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:33:43 [snail-job-grpc-client-executor-127.0.0.1-98] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[98] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:33:53 [snail-job-grpc-client-executor-127.0.0.1-99] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[100] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:34:03 [snail-job-grpc-client-executor-127.0.0.1-101] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[101] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:34:13 [snail-job-grpc-client-executor-127.0.0.1-102] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[102] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:34:23 [snail-job-grpc-client-executor-127.0.0.1-103] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[103] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:34:33 [snail-job-grpc-client-executor-127.0.0.1-104] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[104] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:34:43 [snail-job-grpc-client-executor-127.0.0.1-105] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[105] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:34:53 [snail-job-grpc-client-executor-127.0.0.1-106] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[106] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:35:03 [snail-job-grpc-client-executor-127.0.0.1-108] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[108] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:35:13 [snail-job-grpc-client-executor-127.0.0.1-109] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[109] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:35:23 [snail-job-grpc-client-executor-127.0.0.1-110] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[110] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:35:33 [snail-job-grpc-client-executor-127.0.0.1-111] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[111] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:35:43 [snail-job-grpc-client-executor-127.0.0.1-112] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[112] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:35:53 [snail-job-grpc-client-executor-127.0.0.1-114] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[114] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:36:03 [snail-job-grpc-client-executor-127.0.0.1-115] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[115] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:36:13 [snail-job-grpc-client-executor-127.0.0.1-116] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[116] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:36:23 [snail-job-grpc-client-executor-127.0.0.1-117] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[117] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:36:33 [snail-job-grpc-client-executor-127.0.0.1-118] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[118] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:36:43 [snail-job-grpc-client-executor-127.0.0.1-119] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[119] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:36:53 [snail-job-grpc-client-executor-127.0.0.1-121] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[121] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:37:03 [snail-job-grpc-client-executor-127.0.0.1-122] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[122] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:37:13 [snail-job-grpc-client-executor-127.0.0.1-123] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[123] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:37:23 [snail-job-grpc-client-executor-127.0.0.1-124] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[124] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:37:33 [snail-job-grpc-client-executor-127.0.0.1-125] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[125] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:37:43 [snail-job-grpc-client-executor-127.0.0.1-126] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[126] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:37:53 [snail-job-grpc-client-executor-127.0.0.1-127] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[127] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:38:03 [snail-job-grpc-client-executor-127.0.0.1-129] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[129] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:38:13 [snail-job-grpc-client-executor-127.0.0.1-130] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[130] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:38:23 [snail-job-grpc-client-executor-127.0.0.1-131] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[131] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:38:33 [snail-job-grpc-client-executor-127.0.0.1-132] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[132] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:38:43 [snail-job-grpc-client-executor-127.0.0.1-133] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[133] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:38:53 [snail-job-grpc-client-executor-127.0.0.1-135] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[135] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:39:03 [snail-job-grpc-client-executor-127.0.0.1-136] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[136] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:39:13 [snail-job-grpc-client-executor-127.0.0.1-137] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[137] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:39:23 [snail-job-grpc-client-executor-127.0.0.1-138] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[138] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:39:33 [snail-job-grpc-client-executor-127.0.0.1-139] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[139] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:39:43 [snail-job-grpc-client-executor-127.0.0.1-140] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[140] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:39:53 [snail-job-grpc-client-executor-127.0.0.1-142] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[142] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:40:03 [snail-job-grpc-client-executor-127.0.0.1-143] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[143] message:[UNAVAILABLE: Channel shutdown invoked]
|
|
||||||
2026-05-09 09:40:30 [snail-job-grpc-client-executor-127.0.0.1-0] ERROR c.a.s.c.j.c.r.JobExecutorRegistrar - Job executors register error requestId:[0] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:40:30 [snail-job-grpc-client-executor-127.0.0.1-2] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[1] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:40:39 [XNIO-1 task-2] ERROR o.d.c.s.h.SaTokenExceptionHandler - 请求地址'/app/v1/deviceList',权限码校验失败'无此权限:app:device:list'
|
|
||||||
2026-05-09 09:40:40 [snail-job-grpc-client-executor-127.0.0.1-3] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[3] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:40:50 [snail-job-grpc-client-executor-127.0.0.1-4] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[4] message:[UNAVAILABLE: Channel shutdown invoked]
|
|
||||||
2026-05-09 09:41:09 [snail-job-grpc-client-executor-127.0.0.1-0] ERROR c.a.s.c.j.c.r.JobExecutorRegistrar - Job executors register error requestId:[0] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:41:09 [snail-job-grpc-client-executor-127.0.0.1-2] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[1] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:41:19 [snail-job-grpc-client-executor-127.0.0.1-3] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[3] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:41:29 [snail-job-grpc-client-executor-127.0.0.1-4] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[4] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:41:39 [snail-job-grpc-client-executor-127.0.0.1-5] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[5] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:41:49 [snail-job-grpc-client-executor-127.0.0.1-6] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[6] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:41:59 [snail-job-grpc-client-executor-127.0.0.1-7] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[7] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:42:09 [snail-job-grpc-client-executor-127.0.0.1-8] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[9] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:42:32 [snail-job-grpc-client-executor-127.0.0.1-0] ERROR c.a.s.c.j.c.r.JobExecutorRegistrar - Job executors register error requestId:[0] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:42:32 [snail-job-grpc-client-executor-127.0.0.1-2] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[1] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:42:42 [snail-job-grpc-client-executor-127.0.0.1-3] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[3] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:42:52 [snail-job-grpc-client-executor-127.0.0.1-4] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[4] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:43:02 [snail-job-grpc-client-executor-127.0.0.1-5] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[5] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:43:12 [snail-job-grpc-client-executor-127.0.0.1-6] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[6] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:43:22 [snail-job-grpc-client-executor-127.0.0.1-7] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[7] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:43:32 [snail-job-grpc-client-executor-127.0.0.1-8] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[8] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:43:42 [snail-job-grpc-client-executor-127.0.0.1-10] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[10] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:43:52 [snail-job-grpc-client-executor-127.0.0.1-11] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[11] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:44:02 [snail-job-grpc-client-executor-127.0.0.1-12] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[12] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:44:12 [snail-job-grpc-client-executor-127.0.0.1-13] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[13] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:44:22 [snail-job-grpc-client-executor-127.0.0.1-14] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[14] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:44:32 [snail-job-grpc-client-executor-127.0.0.1-15] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[15] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:44:42 [snail-job-grpc-client-executor-127.0.0.1-17] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[17] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:44:52 [snail-job-grpc-client-executor-127.0.0.1-18] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[18] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:45:02 [snail-job-grpc-client-executor-127.0.0.1-19] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[19] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:45:12 [snail-job-grpc-client-executor-127.0.0.1-20] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[20] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:45:22 [snail-job-grpc-client-executor-127.0.0.1-21] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[21] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:45:32 [snail-job-grpc-client-executor-127.0.0.1-22] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[23] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:45:42 [snail-job-grpc-client-executor-127.0.0.1-24] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[24] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:45:52 [snail-job-grpc-client-executor-127.0.0.1-25] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[25] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:46:02 [snail-job-grpc-client-executor-127.0.0.1-26] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[26] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:46:12 [snail-job-grpc-client-executor-127.0.0.1-27] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[27] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:46:22 [snail-job-grpc-client-executor-127.0.0.1-28] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[28] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:46:32 [snail-job-grpc-client-executor-127.0.0.1-30] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[30] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:46:42 [snail-job-grpc-client-executor-127.0.0.1-31] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[31] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:46:52 [snail-job-grpc-client-executor-127.0.0.1-32] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[32] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:47:02 [snail-job-grpc-client-executor-127.0.0.1-33] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[33] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:47:12 [snail-job-grpc-client-executor-127.0.0.1-34] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[34] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:47:22 [snail-job-grpc-client-executor-127.0.0.1-35] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[35] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:47:59 [snail-job-grpc-client-executor-127.0.0.1-0] ERROR c.a.s.c.j.c.r.JobExecutorRegistrar - Job executors register error requestId:[0] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:47:59 [snail-job-grpc-client-executor-127.0.0.1-2] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[1] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:48:09 [snail-job-grpc-client-executor-127.0.0.1-3] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[3] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:48:19 [snail-job-grpc-client-executor-127.0.0.1-4] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[4] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:48:29 [snail-job-grpc-client-executor-127.0.0.1-5] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[5] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:48:39 [snail-job-grpc-client-executor-127.0.0.1-6] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[6] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:48:49 [snail-job-grpc-client-executor-127.0.0.1-7] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[7] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:48:59 [snail-job-grpc-client-executor-127.0.0.1-8] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[9] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:49:09 [snail-job-grpc-client-executor-127.0.0.1-10] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[10] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:49:19 [snail-job-grpc-client-executor-127.0.0.1-11] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[11] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:49:29 [snail-job-grpc-client-executor-127.0.0.1-12] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[12] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:49:39 [snail-job-grpc-client-executor-127.0.0.1-13] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[13] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:49:49 [snail-job-grpc-client-executor-127.0.0.1-14] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[14] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:50:13 [snail-job-grpc-client-executor-127.0.0.1-0] ERROR c.a.s.c.j.c.r.JobExecutorRegistrar - Job executors register error requestId:[0] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:50:13 [snail-job-grpc-client-executor-127.0.0.1-2] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[1] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:50:23 [snail-job-grpc-client-executor-127.0.0.1-3] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[3] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:50:33 [snail-job-grpc-client-executor-127.0.0.1-4] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[4] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:50:43 [snail-job-grpc-client-executor-127.0.0.1-5] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[5] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:51:00 [snail-job-grpc-client-executor-127.0.0.1-0] ERROR c.a.s.c.j.c.r.JobExecutorRegistrar - Job executors register error requestId:[0] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:51:00 [snail-job-grpc-client-executor-127.0.0.1-2] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[1] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:51:10 [snail-job-grpc-client-executor-127.0.0.1-3] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[3] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:51:20 [snail-job-grpc-client-executor-127.0.0.1-4] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[4] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:51:30 [snail-job-grpc-client-executor-127.0.0.1-5] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[5] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:51:40 [snail-job-grpc-client-executor-127.0.0.1-6] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[6] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:51:50 [snail-job-grpc-client-executor-127.0.0.1-7] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[7] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:52:00 [snail-job-grpc-client-executor-127.0.0.1-8] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[8] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:52:10 [snail-job-grpc-client-executor-127.0.0.1-10] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[10] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:52:20 [snail-job-grpc-client-executor-127.0.0.1-11] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[11] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:52:30 [snail-job-grpc-client-executor-127.0.0.1-12] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[12] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:52:40 [snail-job-grpc-client-executor-127.0.0.1-13] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[13] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:52:50 [snail-job-grpc-client-executor-127.0.0.1-14] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[14] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:53:00 [snail-job-grpc-client-executor-127.0.0.1-15] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[15] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:53:10 [snail-job-grpc-client-executor-127.0.0.1-17] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[17] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:53:20 [snail-job-grpc-client-executor-127.0.0.1-18] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[18] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:53:30 [snail-job-grpc-client-executor-127.0.0.1-19] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[19] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:53:40 [snail-job-grpc-client-executor-127.0.0.1-20] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[20] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:53:50 [snail-job-grpc-client-executor-127.0.0.1-21] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[21] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:54:00 [snail-job-grpc-client-executor-127.0.0.1-23] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[23] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:54:10 [snail-job-grpc-client-executor-127.0.0.1-24] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[24] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:54:20 [snail-job-grpc-client-executor-127.0.0.1-25] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[25] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:54:30 [snail-job-grpc-client-executor-127.0.0.1-26] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[26] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:54:40 [snail-job-grpc-client-executor-127.0.0.1-27] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[27] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:54:50 [snail-job-grpc-client-executor-127.0.0.1-28] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[28] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:55:00 [snail-job-grpc-client-executor-127.0.0.1-29] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[30] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:55:10 [snail-job-grpc-client-executor-127.0.0.1-31] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[31] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:55:20 [snail-job-grpc-client-executor-127.0.0.1-32] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[32] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:55:30 [snail-job-grpc-client-executor-127.0.0.1-33] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[33] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:55:40 [snail-job-grpc-client-executor-127.0.0.1-34] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[34] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:55:50 [snail-job-grpc-client-executor-127.0.0.1-35] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[35] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:56:00 [snail-job-grpc-client-executor-127.0.0.1-36] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[36] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:56:10 [snail-job-grpc-client-executor-127.0.0.1-38] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[38] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:56:20 [snail-job-grpc-client-executor-127.0.0.1-39] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[39] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:56:30 [snail-job-grpc-client-executor-127.0.0.1-40] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[40] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:56:40 [snail-job-grpc-client-executor-127.0.0.1-41] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[41] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:56:50 [snail-job-grpc-client-executor-127.0.0.1-42] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[42] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:57:00 [snail-job-grpc-client-executor-127.0.0.1-43] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[43] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:57:10 [snail-job-grpc-client-executor-127.0.0.1-45] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[45] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:57:20 [snail-job-grpc-client-executor-127.0.0.1-46] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[46] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:57:30 [snail-job-grpc-client-executor-127.0.0.1-47] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[47] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:57:40 [snail-job-grpc-client-executor-127.0.0.1-48] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[48] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:57:50 [snail-job-grpc-client-executor-127.0.0.1-49] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[49] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:58:00 [snail-job-grpc-client-executor-127.0.0.1-50] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[50] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:58:10 [snail-job-grpc-client-executor-127.0.0.1-52] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[52] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:58:20 [snail-job-grpc-client-executor-127.0.0.1-53] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[53] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:58:30 [snail-job-grpc-client-executor-127.0.0.1-54] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[54] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:58:40 [snail-job-grpc-client-executor-127.0.0.1-55] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[55] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:58:50 [snail-job-grpc-client-executor-127.0.0.1-56] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[56] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:59:00 [snail-job-grpc-client-executor-127.0.0.1-57] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[57] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:59:10 [snail-job-grpc-client-executor-127.0.0.1-59] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[59] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:59:20 [snail-job-grpc-client-executor-127.0.0.1-60] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[60] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:59:30 [snail-job-grpc-client-executor-127.0.0.1-61] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[61] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:59:40 [snail-job-grpc-client-executor-127.0.0.1-62] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[62] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 09:59:50 [snail-job-grpc-client-executor-127.0.0.1-63] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[63] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:00:00 [snail-job-grpc-client-executor-127.0.0.1-65] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[65] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:00:10 [snail-job-grpc-client-executor-127.0.0.1-66] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[66] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:00:20 [snail-job-grpc-client-executor-127.0.0.1-67] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[67] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:00:30 [snail-job-grpc-client-executor-127.0.0.1-68] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[68] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:00:40 [snail-job-grpc-client-executor-127.0.0.1-69] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[69] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:00:50 [snail-job-grpc-client-executor-127.0.0.1-70] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[70] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:01:00 [snail-job-grpc-client-executor-127.0.0.1-72] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[71] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:01:10 [snail-job-grpc-client-executor-127.0.0.1-73] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[73] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:01:20 [snail-job-grpc-client-executor-127.0.0.1-74] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[74] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:01:30 [snail-job-grpc-client-executor-127.0.0.1-75] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[75] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:01:40 [snail-job-grpc-client-executor-127.0.0.1-76] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[76] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:01:50 [snail-job-grpc-client-executor-127.0.0.1-77] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[77] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:02:00 [snail-job-grpc-client-executor-127.0.0.1-78] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[78] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:02:10 [snail-job-grpc-client-executor-127.0.0.1-80] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[80] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:02:20 [snail-job-grpc-client-executor-127.0.0.1-81] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[81] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:02:30 [snail-job-grpc-client-executor-127.0.0.1-82] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[82] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:02:40 [snail-job-grpc-client-executor-127.0.0.1-83] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[83] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:02:50 [snail-job-grpc-client-executor-127.0.0.1-84] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[84] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:03:00 [snail-job-grpc-client-executor-127.0.0.1-86] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[86] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:03:10 [snail-job-grpc-client-executor-127.0.0.1-87] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[87] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:03:20 [snail-job-grpc-client-executor-127.0.0.1-88] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[88] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:03:30 [snail-job-grpc-client-executor-127.0.0.1-89] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[89] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:03:40 [snail-job-grpc-client-executor-127.0.0.1-90] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[90] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:03:50 [snail-job-grpc-client-executor-127.0.0.1-91] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[91] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:04:00 [snail-job-grpc-client-executor-127.0.0.1-92] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[92] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:04:10 [snail-job-grpc-client-executor-127.0.0.1-94] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[94] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:04:20 [snail-job-grpc-client-executor-127.0.0.1-95] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[95] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:04:30 [snail-job-grpc-client-executor-127.0.0.1-96] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[96] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:04:40 [snail-job-grpc-client-executor-127.0.0.1-97] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[97] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:04:50 [snail-job-grpc-client-executor-127.0.0.1-98] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[98] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:05:00 [snail-job-grpc-client-executor-127.0.0.1-99] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[99] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:05:10 [snail-job-grpc-client-executor-127.0.0.1-101] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[101] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:05:20 [snail-job-grpc-client-executor-127.0.0.1-102] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[102] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:05:30 [snail-job-grpc-client-executor-127.0.0.1-103] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[103] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:05:40 [snail-job-grpc-client-executor-127.0.0.1-104] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[104] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:05:50 [snail-job-grpc-client-executor-127.0.0.1-105] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[105] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:06:00 [snail-job-grpc-client-executor-127.0.0.1-106] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[106] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:06:10 [snail-job-grpc-client-executor-127.0.0.1-108] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[108] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:06:20 [snail-job-grpc-client-executor-127.0.0.1-109] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[109] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:06:30 [snail-job-grpc-client-executor-127.0.0.1-110] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[110] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:06:40 [snail-job-grpc-client-executor-127.0.0.1-111] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[111] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:06:50 [snail-job-grpc-client-executor-127.0.0.1-112] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[112] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:07:00 [snail-job-grpc-client-executor-127.0.0.1-114] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[113] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:07:10 [snail-job-grpc-client-executor-127.0.0.1-115] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[115] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:07:20 [snail-job-grpc-client-executor-127.0.0.1-116] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[116] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:07:30 [snail-job-grpc-client-executor-127.0.0.1-117] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[117] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:07:40 [snail-job-grpc-client-executor-127.0.0.1-118] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[118] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:07:50 [snail-job-grpc-client-executor-127.0.0.1-119] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[119] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:08:00 [snail-job-grpc-client-executor-127.0.0.1-121] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[120] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:08:10 [snail-job-grpc-client-executor-127.0.0.1-122] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[122] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:08:20 [snail-job-grpc-client-executor-127.0.0.1-123] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[123] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:08:30 [snail-job-grpc-client-executor-127.0.0.1-124] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[124] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:08:40 [snail-job-grpc-client-executor-127.0.0.1-125] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[125] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:08:50 [snail-job-grpc-client-executor-127.0.0.1-126] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[126] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:09:00 [snail-job-grpc-client-executor-127.0.0.1-127] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[128] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:09:10 [snail-job-grpc-client-executor-127.0.0.1-129] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[129] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:09:20 [snail-job-grpc-client-executor-127.0.0.1-130] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[130] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:09:30 [snail-job-grpc-client-executor-127.0.0.1-131] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[131] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:09:40 [snail-job-grpc-client-executor-127.0.0.1-132] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[132] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:09:50 [snail-job-grpc-client-executor-127.0.0.1-133] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[133] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:10:00 [snail-job-grpc-client-executor-127.0.0.1-134] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[134] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:10:10 [snail-job-grpc-client-executor-127.0.0.1-136] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[136] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:10:20 [snail-job-grpc-client-executor-127.0.0.1-137] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[137] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:10:30 [snail-job-grpc-client-executor-127.0.0.1-138] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[138] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:10:40 [snail-job-grpc-client-executor-127.0.0.1-139] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[139] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:10:50 [snail-job-grpc-client-executor-127.0.0.1-140] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[140] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:11:00 [snail-job-grpc-client-executor-127.0.0.1-142] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[141] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:11:10 [snail-job-grpc-client-executor-127.0.0.1-143] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[143] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:11:20 [snail-job-grpc-client-executor-127.0.0.1-144] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[144] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:11:30 [snail-job-grpc-client-executor-127.0.0.1-145] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[145] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:11:40 [snail-job-grpc-client-executor-127.0.0.1-146] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[146] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:11:50 [snail-job-grpc-client-executor-127.0.0.1-147] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[147] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:12:00 [snail-job-grpc-client-executor-127.0.0.1-148] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[148] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:12:10 [snail-job-grpc-client-executor-127.0.0.1-150] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[150] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:12:20 [snail-job-grpc-client-executor-127.0.0.1-151] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[151] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:12:30 [snail-job-grpc-client-executor-127.0.0.1-152] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[152] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:12:40 [snail-job-grpc-client-executor-127.0.0.1-153] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[153] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:12:50 [snail-job-grpc-client-executor-127.0.0.1-154] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[154] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:13:00 [snail-job-grpc-client-executor-127.0.0.1-155] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[155] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:13:10 [snail-job-grpc-client-executor-127.0.0.1-157] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[157] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:13:20 [snail-job-grpc-client-executor-127.0.0.1-158] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[158] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:13:30 [snail-job-grpc-client-executor-127.0.0.1-159] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[159] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:13:40 [snail-job-grpc-client-executor-127.0.0.1-160] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[160] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:13:50 [snail-job-grpc-client-executor-127.0.0.1-161] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[161] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:14:00 [snail-job-grpc-client-executor-127.0.0.1-163] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[163] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:14:10 [snail-job-grpc-client-executor-127.0.0.1-164] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[164] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:14:20 [snail-job-grpc-client-executor-127.0.0.1-165] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[165] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:14:30 [snail-job-grpc-client-executor-127.0.0.1-166] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[166] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:14:40 [snail-job-grpc-client-executor-127.0.0.1-167] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[167] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:14:50 [snail-job-grpc-client-executor-127.0.0.1-168] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[168] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:15:00 [snail-job-grpc-client-executor-127.0.0.1-169] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[170] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:15:10 [snail-job-grpc-client-executor-127.0.0.1-171] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[171] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:15:20 [snail-job-grpc-client-executor-127.0.0.1-172] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[172] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:15:30 [snail-job-grpc-client-executor-127.0.0.1-173] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[173] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:15:40 [snail-job-grpc-client-executor-127.0.0.1-174] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[174] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:15:50 [snail-job-grpc-client-executor-127.0.0.1-175] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[175] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:16:00 [snail-job-grpc-client-executor-127.0.0.1-176] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[177] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:16:10 [snail-job-grpc-client-executor-127.0.0.1-178] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[178] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:16:20 [snail-job-grpc-client-executor-127.0.0.1-179] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[179] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:16:30 [snail-job-grpc-client-executor-127.0.0.1-180] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[180] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:16:40 [snail-job-grpc-client-executor-127.0.0.1-181] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[181] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:16:50 [snail-job-grpc-client-executor-127.0.0.1-182] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[182] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:17:00 [snail-job-grpc-client-executor-127.0.0.1-184] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[184] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:17:10 [snail-job-grpc-client-executor-127.0.0.1-185] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[185] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:17:20 [snail-job-grpc-client-executor-127.0.0.1-186] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[186] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:17:30 [snail-job-grpc-client-executor-127.0.0.1-187] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[187] message:[UNAVAILABLE: io exception]
|
|
||||||
2026-05-09 10:17:40 [snail-job-grpc-client-executor-127.0.0.1-188] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[188] message:[UNAVAILABLE: io exception]
|
|
||||||
|
|||||||
@@ -1,662 +1,88 @@
|
|||||||
2026-05-09 09:01:56 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
2026-06-04 07:06:53 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/getUserInfo],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"]}]
|
||||||
2026-05-09 09:01:56 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 32304 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
2026-06-04 07:06:53 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"],"pageSize":["10"],"pageNum":["1"]}]
|
||||||
2026-05-09 09:01:56 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
2026-06-04 07:06:53 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/getUserInfo],耗时:[12]毫秒
|
||||||
2026-05-09 09:02:00 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
2026-06-04 07:06:53 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[36]毫秒
|
||||||
2026-05-09 09:02:00 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
2026-06-04 07:06:57 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/device/2062185771665858562],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"]}]
|
||||||
2026-05-09 09:02:00 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
2026-06-04 07:06:57 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/device/2062185771665858562],耗时:[13]毫秒
|
||||||
2026-05-09 09:02:00 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@2403c1c5
|
2026-06-04 07:06:59 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/device/2062185771665858562],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"]}]
|
||||||
2026-05-09 09:02:00 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
2026-06-04 07:06:59 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/device/2062185771665858562],耗时:[5]毫秒
|
||||||
2026-05-09 09:02:00 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
2026-06-04 07:07:01 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[DELETE /app/v1/deleteDevice/2062185771665858562],参数类型[json],参数:[{"clientId":"32324a04c0175c8d61ac8a282553aea1"}]
|
||||||
2026-05-09 09:02:00 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
2026-06-04 07:07:01 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[DELETE /app/v1/deleteDevice/2062185771665858562],耗时:[10]毫秒
|
||||||
2026-05-09 09:02:02 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
2026-06-04 07:07:03 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/getUserInfo],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"]}]
|
||||||
2026-05-09 09:02:02 [main] INFO org.redisson.Version - Redisson 3.52.0
|
2026-06-04 07:07:03 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"],"pageSize":["10"],"pageNum":["1"]}]
|
||||||
2026-05-09 09:02:02 [redisson-netty-1-5] INFO o.r.connection.ConnectionsHolder - 1 connections initialized for localhost/127.0.0.1:6379
|
2026-06-04 07:07:03 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/getUserInfo],耗时:[5]毫秒
|
||||||
2026-05-09 09:02:02 [redisson-netty-1-4] INFO o.r.connection.ConnectionsHolder - 8 connections initialized for localhost/127.0.0.1:6379
|
2026-06-04 07:07:03 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[22]毫秒
|
||||||
2026-05-09 09:02:03 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
2026-06-04 07:07:06 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/schedulelist],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"],"pageSize":["10"],"pageNum":["1"]}]
|
||||||
2026-05-09 09:02:03 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
2026-06-04 07:07:06 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/schedulelist],耗时:[12]毫秒
|
||||||
2026-05-09 09:02:03 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
2026-06-04 07:07:07 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/schedulelist],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"],"pageSize":["10"],"pageNum":["2"]}]
|
||||||
2026-05-09 09:02:04 [main] INFO o.d.common.json.config.JacksonConfig - 初始化 jackson 配置
|
2026-06-04 07:07:07 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/schedulelist],耗时:[15]毫秒
|
||||||
2026-05-09 09:02:04 [main] INFO c.a.s.c.s.SnailJobClientJobCoreAutoConfiguration - Snail-Job 客户端IP为: 192.168.0.217
|
2026-06-04 07:07:11 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/getUserInfo],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"]}]
|
||||||
2026-05-09 09:02:04 [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware - Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@65bb9029
|
2026-06-04 07:07:11 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/getUserInfo],耗时:[4]毫秒
|
||||||
2026-05-09 09:02:08 [main] INFO o.d.w.p.modes.sb.config.BeanConfig - 【warm-flow】,加载完成
|
2026-06-04 07:07:13 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/dataStatistics],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"]}]
|
||||||
2026-05-09 09:02:09 [main] INFO io.undertow - starting server: Undertow - 2.3.23.Final
|
2026-06-04 07:07:13 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/dataStatistics],耗时:[8]毫秒
|
||||||
2026-05-09 09:02:09 [main] INFO org.xnio - XNIO version 3.8.16.Final
|
2026-06-04 07:07:14 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/waterLogList],参数类型[param],参数:[{"param[endTime]":[""],"param[beginTime]":[""],"clientId":["32324a04c0175c8d61ac8a282553aea1"],"pageSize":["10"],"pageNum":["1"]}]
|
||||||
2026-05-09 09:02:09 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.16.Final
|
2026-06-04 07:07:14 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/waterLogList],耗时:[16]毫秒
|
||||||
2026-05-09 09:02:09 [main] INFO org.jboss.threads - JBoss Threads version 3.7.0.Final
|
2026-06-04 07:07:16 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/getUserInfo],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"]}]
|
||||||
2026-05-09 09:02:09 [main] INFO org.dromara.DromaraApplication - Started DromaraApplication in 14.199 seconds (process running for 15.467)
|
2026-06-04 07:07:16 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/getUserInfo],耗时:[4]毫秒
|
||||||
2026-05-09 09:02:09 [main] INFO o.d.c.sse.listener.SseTopicListener - 初始化SSE主题订阅监听器成功
|
2026-06-04 07:07:24 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/getUserInfo],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"]}]
|
||||||
2026-05-09 09:02:09 [main] INFO o.d.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
2026-06-04 07:07:24 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/getUserInfo],耗时:[6]毫秒
|
||||||
2026-05-09 09:02:09 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client is preparing to start... v1.9.0
|
2026-06-04 07:07:33 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/getUserInfo],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"]}]
|
||||||
2026-05-09 09:02:10 [main] INFO c.a.s.c.c.r.c.g.SnailJobGrpcClient - gRPC client started connect to server
|
2026-06-04 07:07:33 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/getUserInfo],耗时:[6]毫秒
|
||||||
2026-05-09 09:02:10 [main] INFO c.a.s.c.c.rpc.server.SnailGrpcServer - ------> snail-job remoting server start success, grpc = com.aizuda.snailjob.client.common.rpc.server.SnailGrpcServer, port = 28081
|
2026-06-04 07:38:43 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/getUserInfo],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"]}]
|
||||||
2026-05-09 09:02:10 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client started successfully v1.9.0
|
2026-06-04 07:38:43 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"],"pageSize":["10"],"pageNum":["1"]}]
|
||||||
2026-05-09 09:02:11 [RMI TCP Connection(15)-192.168.111.1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
2026-06-04 07:38:43 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/getUserInfo],耗时:[11]毫秒
|
||||||
2026-05-09 09:03:15 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[POST /app/v1/addDevice],参数类型[json],参数:[{"device_no":"sn165165fdfdsa","device_name":"测试设备一","device_img":"","wifi_name":"wifi","wifi_password":"12345678","device_em":"dfasdfas","device_sn":"fdasfsadf","fw_ver":"fsdfas","mac_address":"2.285ssadf.fsad"}]
|
2026-06-04 07:38:43 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[28]毫秒
|
||||||
2026-05-09 09:03:15 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[POST /app/v1/addDevice],耗时:[223]毫秒
|
2026-06-04 07:38:46 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/device/2059509304398151682],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"]}]
|
||||||
2026-05-09 09:03:39 [Thread-5] INFO c.a.s.c.c.window.SlidingRingWindow - JVM is about to exit, emitting data in the Window
|
2026-06-04 07:38:46 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/device/2059509304398151682],耗时:[7]毫秒
|
||||||
2026-05-09 09:03:39 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client about to shutdown v1.9.0
|
2026-06-04 07:38:51 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/getUserInfo],参数类型[param],参数:[{"clientId":["32324a04c0175c8d61ac8a282553aea1"]}]
|
||||||
2026-05-09 09:03:39 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log about to shutdown
|
2026-06-04 07:38:51 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/getUserInfo],耗时:[4]毫秒
|
||||||
2026-05-09 09:03:39 [SpringApplicationShutdownHook] INFO c.a.s.c.c.window.SlidingRingWindow - Sliding window is about to exit, emitting data in the Window
|
2026-06-04 08:11:28 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:39 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log has been shutdown
|
2026-06-04 08:11:28 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[16]毫秒
|
||||||
2026-05-09 09:03:39 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client closed successfully v1.9.0
|
2026-06-04 08:11:32 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/device/2060265891827957762],无参数
|
||||||
2026-05-09 09:03:39 [SpringApplicationShutdownHook] INFO io.undertow - stopping server: Undertow - 2.3.23.Final
|
2026-06-04 08:11:32 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/device/2060265891827957762],耗时:[8]毫秒
|
||||||
2026-05-09 09:03:39 [SpringApplicationShutdownHook] INFO o.d.c.core.config.ThreadPoolConfig - ====关闭后台任务任务线程池====
|
2026-06-04 08:11:33 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:39 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource start closing ....
|
2026-06-04 08:11:34 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[18]毫秒
|
||||||
2026-05-09 09:03:39 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown initiated...
|
2026-06-04 08:11:35 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/device/2060266873861324801],无参数
|
||||||
2026-05-09 09:03:39 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown completed.
|
2026-06-04 08:11:35 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/device/2060266873861324801],耗时:[3]毫秒
|
||||||
2026-05-09 09:03:39 [SpringApplicationShutdownHook] INFO c.b.d.d.d.DefaultDataSourceDestroyer - dynamic-datasource close the datasource named [master] success,
|
2026-06-04 08:11:37 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:39 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
|
2026-06-04 08:11:37 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[16]毫秒
|
||||||
2026-05-09 09:03:39 [SpringApplicationShutdownHook] INFO io.undertow.servlet - Destroying Spring FrameworkServlet 'dispatcherServlet'
|
2026-06-04 08:11:38 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/device/2060266816596492289],无参数
|
||||||
2026-05-09 09:03:44 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
2026-06-04 08:11:38 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/device/2060266816596492289],耗时:[2]毫秒
|
||||||
2026-05-09 09:03:44 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 19172 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
2026-06-04 08:11:51 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[PUT /app/v1/switchDevice],参数类型[json],参数:[{"id":"2060266816596492289","workStatus":"1","durationMin":"60"}]
|
||||||
2026-05-09 09:03:44 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
2026-06-04 08:11:51 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[PUT /app/v1/switchDevice],耗时:[13]毫秒
|
||||||
2026-05-09 09:03:47 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
2026-06-04 08:12:04 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:47 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
2026-06-04 08:12:04 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[15]毫秒
|
||||||
2026-05-09 09:03:47 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
2026-06-04 08:21:57 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:47 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@1001b435
|
2026-06-04 08:21:57 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[17]毫秒
|
||||||
2026-05-09 09:03:47 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
2026-06-04 08:22:06 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:47 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
2026-06-04 08:22:06 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[14]毫秒
|
||||||
2026-05-09 09:03:47 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
2026-06-04 08:27:53 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:49 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
2026-06-04 08:27:53 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[29]毫秒
|
||||||
2026-05-09 09:03:49 [main] INFO org.redisson.Version - Redisson 3.52.0
|
2026-06-04 10:28:49 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:49 [redisson-netty-1-5] INFO o.r.connection.ConnectionsHolder - 1 connections initialized for localhost/127.0.0.1:6379
|
2026-06-04 10:28:49 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[49]毫秒
|
||||||
2026-05-09 09:03:49 [redisson-netty-1-4] INFO o.r.connection.ConnectionsHolder - 8 connections initialized for localhost/127.0.0.1:6379
|
2026-06-04 10:31:13 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:50 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
2026-06-04 10:31:13 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[27]毫秒
|
||||||
2026-05-09 09:03:50 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
2026-06-04 10:44:03 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:50 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
2026-06-04 10:44:03 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[23]毫秒
|
||||||
2026-05-09 09:03:50 [main] INFO o.d.common.json.config.JacksonConfig - 初始化 jackson 配置
|
2026-06-04 10:50:27 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:51 [main] INFO c.a.s.c.s.SnailJobClientJobCoreAutoConfiguration - Snail-Job 客户端IP为: 192.168.0.217
|
2026-06-04 10:50:27 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[16]毫秒
|
||||||
2026-05-09 09:03:51 [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware - Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@62e6a3ec
|
2026-06-04 10:52:28 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:55 [main] INFO o.d.w.p.modes.sb.config.BeanConfig - 【warm-flow】,加载完成
|
2026-06-04 10:52:28 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[25]毫秒
|
||||||
2026-05-09 09:03:56 [main] INFO io.undertow - starting server: Undertow - 2.3.23.Final
|
2026-06-04 10:52:47 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:56 [main] INFO org.xnio - XNIO version 3.8.16.Final
|
2026-06-04 10:52:47 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[15]毫秒
|
||||||
2026-05-09 09:03:56 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.16.Final
|
2026-06-04 10:53:33 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:56 [main] INFO org.jboss.threads - JBoss Threads version 3.7.0.Final
|
2026-06-04 10:53:33 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[14]毫秒
|
||||||
2026-05-09 09:03:56 [main] INFO org.dromara.DromaraApplication - Started DromaraApplication in 13.286 seconds (process running for 14.075)
|
2026-06-04 11:05:23 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:56 [main] INFO o.d.c.sse.listener.SseTopicListener - 初始化SSE主题订阅监听器成功
|
2026-06-04 11:05:23 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[18]毫秒
|
||||||
2026-05-09 09:03:56 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client is preparing to start... v1.9.0
|
2026-06-04 11:08:20 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:56 [XNIO-1 task-2] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
2026-06-04 11:08:20 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[16]毫秒
|
||||||
2026-05-09 09:03:57 [main] INFO c.a.s.c.c.r.c.g.SnailJobGrpcClient - gRPC client started connect to server
|
2026-06-04 11:17:17 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:57 [main] INFO c.a.s.c.c.rpc.server.SnailGrpcServer - ------> snail-job remoting server start success, grpc = com.aizuda.snailjob.client.common.rpc.server.SnailGrpcServer, port = 28081
|
2026-06-04 11:17:17 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[21]毫秒
|
||||||
2026-05-09 09:03:57 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[POST /app/v1/addDevice],参数类型[json],参数:[{"device_no":"sn165165fdfdsa","device_name":"测试设备一","device_img":"","wifi_name":"wifi","wifi_password":"12345678","device_em":"dfasdfas","device_sn":"fdasfsadf","fw_ver":"fsdfas","mac_address":"2.285ssadf.fsad"}]
|
2026-06-04 11:20:07 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:58 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client started successfully v1.9.0
|
2026-06-04 11:20:07 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[15]毫秒
|
||||||
2026-05-09 09:03:58 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[POST /app/v1/addDevice],耗时:[317]毫秒
|
2026-06-04 11:21:29 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:03:58 [main] INFO o.d.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
2026-06-04 11:21:29 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[15]毫秒
|
||||||
2026-05-09 09:06:52 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[POST /app/v1/addDevice],参数类型[json],参数:[{"device_no":"sn165165fdfdsa","device_name":"测试设备一","device_img":"","wifi_name":"wifi","wifi_password":"12345678","device_em":"dfasdfas","device_sn":"fdasfsadf","fw_ver":"fsdfas","mac_address":"2.285ssadf.fsad"}]
|
2026-06-04 11:22:24 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:07:22 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[POST /app/v1/addDevice],耗时:[29717]毫秒
|
2026-06-04 11:22:24 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[16]毫秒
|
||||||
2026-05-09 09:07:58 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[POST /app/v1/addDevice],参数类型[json],参数:[{"deviceNo":"sn165165fdfdsa","deviceName":"测试设备一","deviceImg":"","wifiName":"wifi","wifiPassword":"12345678","deviceEm":"dfasdfas","deviceSn":"fdasfsadf","fwVer":"fsdfas","macAddress":"2.285ssadf.fsad"}]
|
2026-06-04 11:23:26 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
||||||
2026-05-09 09:07:58 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[POST /app/v1/addDevice],耗时:[9]毫秒
|
2026-06-04 11:23:26 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[15]毫秒
|
||||||
2026-05-09 09:09:43 [Thread-5] INFO c.a.s.c.c.window.SlidingRingWindow - JVM is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:09:43 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client about to shutdown v1.9.0
|
|
||||||
2026-05-09 09:09:43 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log about to shutdown
|
|
||||||
2026-05-09 09:09:43 [SpringApplicationShutdownHook] INFO c.a.s.c.c.window.SlidingRingWindow - Sliding window is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:09:43 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log has been shutdown
|
|
||||||
2026-05-09 09:09:43 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client closed successfully v1.9.0
|
|
||||||
2026-05-09 09:09:43 [SpringApplicationShutdownHook] INFO io.undertow - stopping server: Undertow - 2.3.23.Final
|
|
||||||
2026-05-09 09:09:43 [SpringApplicationShutdownHook] INFO o.d.c.core.config.ThreadPoolConfig - ====关闭后台任务任务线程池====
|
|
||||||
2026-05-09 09:09:43 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource start closing ....
|
|
||||||
2026-05-09 09:09:43 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown initiated...
|
|
||||||
2026-05-09 09:09:43 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown completed.
|
|
||||||
2026-05-09 09:09:43 [SpringApplicationShutdownHook] INFO c.b.d.d.d.DefaultDataSourceDestroyer - dynamic-datasource close the datasource named [master] success,
|
|
||||||
2026-05-09 09:09:43 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
|
|
||||||
2026-05-09 09:09:43 [SpringApplicationShutdownHook] INFO io.undertow.servlet - Destroying Spring FrameworkServlet 'dispatcherServlet'
|
|
||||||
2026-05-09 09:09:50 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
|
||||||
2026-05-09 09:09:50 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 16776 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
|
||||||
2026-05-09 09:09:50 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
|
||||||
2026-05-09 09:09:54 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
|
||||||
2026-05-09 09:09:54 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
|
||||||
2026-05-09 09:09:54 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
|
||||||
2026-05-09 09:09:54 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@1001b435
|
|
||||||
2026-05-09 09:09:54 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
|
||||||
2026-05-09 09:09:54 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
|
||||||
2026-05-09 09:09:54 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
|
||||||
2026-05-09 09:09:55 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
|
||||||
2026-05-09 09:09:56 [main] INFO org.redisson.Version - Redisson 3.52.0
|
|
||||||
2026-05-09 09:09:56 [redisson-netty-1-5] INFO o.r.connection.ConnectionsHolder - 1 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:09:56 [redisson-netty-1-4] INFO o.r.connection.ConnectionsHolder - 8 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:09:57 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:09:57 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:09:57 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:09:57 [main] INFO o.d.common.json.config.JacksonConfig - 初始化 jackson 配置
|
|
||||||
2026-05-09 09:09:57 [main] INFO c.a.s.c.s.SnailJobClientJobCoreAutoConfiguration - Snail-Job 客户端IP为: 192.168.0.217
|
|
||||||
2026-05-09 09:09:57 [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware - Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@62e6a3ec
|
|
||||||
2026-05-09 09:10:01 [main] INFO o.d.w.p.modes.sb.config.BeanConfig - 【warm-flow】,加载完成
|
|
||||||
2026-05-09 09:10:02 [main] INFO io.undertow - starting server: Undertow - 2.3.23.Final
|
|
||||||
2026-05-09 09:10:02 [main] INFO org.xnio - XNIO version 3.8.16.Final
|
|
||||||
2026-05-09 09:10:02 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.16.Final
|
|
||||||
2026-05-09 09:10:02 [main] INFO org.jboss.threads - JBoss Threads version 3.7.0.Final
|
|
||||||
2026-05-09 09:10:02 [main] INFO org.dromara.DromaraApplication - Started DromaraApplication in 13.24 seconds (process running for 14.094)
|
|
||||||
2026-05-09 09:10:02 [main] INFO o.d.c.sse.listener.SseTopicListener - 初始化SSE主题订阅监听器成功
|
|
||||||
2026-05-09 09:10:02 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client is preparing to start... v1.9.0
|
|
||||||
2026-05-09 09:10:03 [main] INFO c.a.s.c.c.r.c.g.SnailJobGrpcClient - gRPC client started connect to server
|
|
||||||
2026-05-09 09:10:03 [main] INFO c.a.s.c.c.rpc.server.SnailGrpcServer - ------> snail-job remoting server start success, grpc = com.aizuda.snailjob.client.common.rpc.server.SnailGrpcServer, port = 28081
|
|
||||||
2026-05-09 09:10:03 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client started successfully v1.9.0
|
|
||||||
2026-05-09 09:10:04 [main] INFO o.d.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
|
||||||
2026-05-09 09:10:04 [RMI TCP Connection(6)-192.168.111.1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
|
||||||
2026-05-09 09:14:14 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /resource/sse/close],无参数
|
|
||||||
2026-05-09 09:14:14 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[POST /auth/logout],无参数
|
|
||||||
2026-05-09 09:14:14 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[POST /auth/logout],耗时:[8]毫秒
|
|
||||||
2026-05-09 09:14:15 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /auth/code],无参数
|
|
||||||
2026-05-09 09:14:15 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /auth/tenant/list],无参数
|
|
||||||
2026-05-09 09:14:15 [XNIO-1 task-4] INFO o.d.c.r.aspectj.RateLimiterAspect - 限制令牌 => 20, 剩余令牌 => 19, 缓存key => 'global:rate_limit:/auth/tenant/list:0:0:0:0:0:0:0:1:'
|
|
||||||
2026-05-09 09:14:15 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /auth/tenant/list],耗时:[38]毫秒
|
|
||||||
2026-05-09 09:14:15 [XNIO-1 task-2] INFO o.d.c.r.aspectj.RateLimiterAspect - 限制令牌 => 10, 剩余令牌 => 9, 缓存key => 'global:rate_limit:/auth/code:0:0:0:0:0:0:0:1:'
|
|
||||||
2026-05-09 09:14:15 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /auth/code],耗时:[294]毫秒
|
|
||||||
2026-05-09 09:14:15 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /resource/sse/close],耗时:[1081]毫秒
|
|
||||||
2026-05-09 09:14:22 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[POST /auth/login],参数类型[json],参数:[{"tenantId":"000000","username":"admin","rememberMe":false,"code":"3","uuid":"f138aa7b1b974923b01b4bd78781232e","clientId":"e5cd7e4891bf95d1d19206ce24a7b32e","grantType":"password"}]
|
|
||||||
2026-05-09 09:14:23 [async-1] INFO o.d.s.s.i.SysLogininforServiceImpl - [0:0:0:0:0:0:0:1]内网IP[admin][Success][登录成功]
|
|
||||||
2026-05-09 09:14:23 [XNIO-1 task-3] INFO o.d.web.listener.UserActionListener - user doLogin, userId:sys_user:1, token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJibElseTRpcjJFZmpSUjdjVERQdnlxNXZ1M2lkbXJsZyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.uk1CGB6xuPaW8OGcIPGOmA5Fo11mEj20KiUrr11rL9k
|
|
||||||
2026-05-09 09:14:23 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[POST /auth/login],耗时:[215]毫秒
|
|
||||||
2026-05-09 09:14:23 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/user/getInfo],无参数
|
|
||||||
2026-05-09 09:14:23 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/user/getInfo],耗时:[61]毫秒
|
|
||||||
2026-05-09 09:14:23 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/menu/getRouters],无参数
|
|
||||||
2026-05-09 09:14:23 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/menu/getRouters],耗时:[43]毫秒
|
|
||||||
2026-05-09 09:14:23 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /auth/tenant/list],无参数
|
|
||||||
2026-05-09 09:14:23 [XNIO-1 task-3] INFO o.d.c.r.aspectj.RateLimiterAspect - 限制令牌 => 20, 剩余令牌 => 18, 缓存key => 'global:rate_limit:/auth/tenant/list:0:0:0:0:0:0:0:1:'
|
|
||||||
2026-05-09 09:14:23 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /auth/tenant/list],耗时:[3]毫秒
|
|
||||||
2026-05-09 09:14:23 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /resource/sse],参数类型[param],参数:[{"Authorization":["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJibElseTRpcjJFZmpSUjdjVERQdnlxNXZ1M2lkbXJsZyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.uk1CGB6xuPaW8OGcIPGOmA5Fo11mEj20KiUrr11rL9k"],"clientid":["e5cd7e4891bf95d1d19206ce24a7b32e"]}]
|
|
||||||
2026-05-09 09:14:28 [schedule-pool-2] INFO o.d.c.sse.core.SseEmitterManager - SSE发送主题订阅消息topic:global:sse session keys:[1] message:上午好,欢迎登录 water-Vue-Plus 后台管理系统
|
|
||||||
2026-05-09 09:14:28 [redisson-3-2] INFO o.d.c.sse.listener.SseTopicListener - SSE主题订阅收到消息session keys=[1] message=上午好,欢迎登录 water-Vue-Plus 后台管理系统
|
|
||||||
2026-05-09 09:14:31 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/dict/data/type/sys_user_sex],无参数
|
|
||||||
2026-05-09 09:14:31 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/dict/data/type/sys_normal_disable],无参数
|
|
||||||
2026-05-09 09:14:31 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/dict/data/type/sys_user_sex],耗时:[13]毫秒
|
|
||||||
2026-05-09 09:14:31 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/dict/data/type/sys_normal_disable],耗时:[13]毫秒
|
|
||||||
2026-05-09 09:14:31 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/user/deptTree],无参数
|
|
||||||
2026-05-09 09:14:31 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/user/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:14:31 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/config/configKey/sys.user.initPassword],无参数
|
|
||||||
2026-05-09 09:14:31 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/config/configKey/sys.user.initPassword],耗时:[9]毫秒
|
|
||||||
2026-05-09 09:14:31 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/user/deptTree],耗时:[121]毫秒
|
|
||||||
2026-05-09 09:14:31 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/user/list],耗时:[129]毫秒
|
|
||||||
2026-05-09 09:14:36 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/user/2047881868870909954],无参数
|
|
||||||
2026-05-09 09:14:36 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/user/2047881868870909954],耗时:[23]毫秒
|
|
||||||
2026-05-09 09:14:47 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[PUT /system/user],参数类型[json],参数:[{"userId":"2047881868870909954","deptId":null,"userName":null,"nickName":"111111","phonenumber":"","email":"40624989@qq.com","sex":"0","status":"0","remark":null,"postIds":null,"roleIds":[4],"tenantId":"000000","userType":"app_user","avatar":null,"loginIp":"0:0:0:0:0:0:0:1","loginDate":"2026-05-07 10:53:11","createTime":"2026-04-25 11:34:20","deptName":null,"roles":[],"roleId":null}]
|
|
||||||
2026-05-09 09:14:47 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[PUT /system/user],耗时:[95]毫秒
|
|
||||||
2026-05-09 09:14:48 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[PUT /system/user],参数类型[json],参数:[{"userId":"2047881868870909954","deptId":null,"userName":null,"nickName":"111111","phonenumber":"","email":"40624989@qq.com","sex":"0","status":"0","remark":null,"postIds":null,"roleIds":[4],"tenantId":"000000","userType":"app_user","avatar":null,"loginIp":"0:0:0:0:0:0:0:1","loginDate":"2026-05-07 10:53:11","createTime":"2026-04-25 11:34:20","deptName":null,"roles":[],"roleId":null}]
|
|
||||||
2026-05-09 09:14:48 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[PUT /system/user],耗时:[2]毫秒
|
|
||||||
2026-05-09 09:14:59 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[PUT /system/user],参数类型[json],参数:[{"userId":"2047881868870909954","deptId":null,"userName":null,"nickName":"111111","phonenumber":"","email":"40624989@qq.com","sex":"0","status":"0","remark":null,"postIds":null,"roleIds":[4],"tenantId":"000000","userType":"app_user","avatar":null,"loginIp":"0:0:0:0:0:0:0:1","loginDate":"2026-05-07 10:53:11","createTime":"2026-04-25 11:34:20","deptName":null,"roles":[],"roleId":null}]
|
|
||||||
2026-05-09 09:14:59 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[PUT /system/user],耗时:[1]毫秒
|
|
||||||
2026-05-09 09:15:24 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/user/2047881868870909954],无参数
|
|
||||||
2026-05-09 09:15:24 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/user/2047881868870909954],耗时:[17]毫秒
|
|
||||||
2026-05-09 09:15:28 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[PUT /system/user],参数类型[json],参数:[{"userId":"2047881868870909954","deptId":null,"userName":"40624989@qq.com","nickName":"111111","phonenumber":"","email":"40624989@qq.com","sex":"0","status":"0","remark":null,"postIds":null,"roleIds":[4],"tenantId":"000000","userType":"app_user","avatar":null,"loginIp":"0:0:0:0:0:0:0:1","loginDate":"2026-05-07 10:53:11","createTime":"2026-04-25 11:34:20","deptName":null,"roles":[],"roleId":null}]
|
|
||||||
2026-05-09 09:15:28 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[PUT /system/user],耗时:[113]毫秒
|
|
||||||
2026-05-09 09:15:28 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/user/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:15:28 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/user/list],耗时:[21]毫秒
|
|
||||||
2026-05-09 09:17:41 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[POST /app/v1/addDevice],参数类型[json],参数:[{"deviceNo":"sn165165fdfdsa","deviceName":"测试设备二","deviceImg":"","wifiName":"wifi","wifiPassword":"12345678","deviceEm":"dfasdfas","deviceSn":"fdasfsadf","fwVer":"fsdfas","macAddress":"2.285ssadf.fsad"}]
|
|
||||||
2026-05-09 09:17:41 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[POST /app/v1/addDevice],耗时:[15]毫秒
|
|
||||||
2026-05-09 09:17:52 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[POST /app/v1/addDevice],参数类型[json],参数:[{"deviceNo":"sn165165fdfdda","deviceName":"测试设备三","deviceImg":"","wifiName":"wifi","wifiPassword":"12345678","deviceEm":"dfasdfas","deviceSn":"fdasfsadf","fwVer":"fsdfas","macAddress":"2.285ssadf.fsad"}]
|
|
||||||
2026-05-09 09:17:52 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[POST /app/v1/addDevice],耗时:[5]毫秒
|
|
||||||
2026-05-09 09:18:02 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[POST /app/v1/addDevice],参数类型[json],参数:[{"deviceNo":"sn1651dffffdfdda","deviceName":"测试设备四","deviceImg":"","wifiName":"wifi","wifiPassword":"12345678","deviceEm":"dfasdfas","deviceSn":"fdasfsadf","fwVer":"fsdfas","macAddress":"2.285ssadf.fsad"}]
|
|
||||||
2026-05-09 09:18:02 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[POST /app/v1/addDevice],耗时:[7]毫秒
|
|
||||||
2026-05-09 09:18:30 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
|
||||||
2026-05-09 09:18:30 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[21]毫秒
|
|
||||||
2026-05-09 09:19:03 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
|
||||||
2026-05-09 09:19:03 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[9]毫秒
|
|
||||||
2026-05-09 09:19:05 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
|
||||||
2026-05-09 09:19:05 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[22]毫秒
|
|
||||||
2026-05-09 09:19:32 [Thread-5] INFO c.a.s.c.c.window.SlidingRingWindow - JVM is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:19:32 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client about to shutdown v1.9.0
|
|
||||||
2026-05-09 09:19:32 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log about to shutdown
|
|
||||||
2026-05-09 09:19:32 [SpringApplicationShutdownHook] INFO c.a.s.c.c.window.SlidingRingWindow - Sliding window is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:19:32 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log has been shutdown
|
|
||||||
2026-05-09 09:19:32 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client closed successfully v1.9.0
|
|
||||||
2026-05-09 09:19:41 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
|
||||||
2026-05-09 09:19:41 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 11676 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
|
||||||
2026-05-09 09:19:41 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
|
||||||
2026-05-09 09:19:44 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
|
||||||
2026-05-09 09:19:44 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
|
||||||
2026-05-09 09:19:44 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
|
||||||
2026-05-09 09:19:44 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@1001b435
|
|
||||||
2026-05-09 09:19:44 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
|
||||||
2026-05-09 09:19:44 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
|
||||||
2026-05-09 09:19:44 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
|
||||||
2026-05-09 09:19:45 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
|
||||||
2026-05-09 09:19:45 [main] INFO org.redisson.Version - Redisson 3.52.0
|
|
||||||
2026-05-09 09:19:46 [redisson-netty-1-5] INFO o.r.connection.ConnectionsHolder - 1 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:19:46 [redisson-netty-1-4] INFO o.r.connection.ConnectionsHolder - 8 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:19:47 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:19:47 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:19:47 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:19:47 [main] INFO o.d.common.json.config.JacksonConfig - 初始化 jackson 配置
|
|
||||||
2026-05-09 09:19:47 [main] INFO c.a.s.c.s.SnailJobClientJobCoreAutoConfiguration - Snail-Job 客户端IP为: 192.168.0.217
|
|
||||||
2026-05-09 09:19:47 [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware - Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@62e6a3ec
|
|
||||||
2026-05-09 09:19:51 [main] INFO o.d.w.p.modes.sb.config.BeanConfig - 【warm-flow】,加载完成
|
|
||||||
2026-05-09 09:19:52 [main] INFO io.undertow - starting server: Undertow - 2.3.23.Final
|
|
||||||
2026-05-09 09:19:52 [main] INFO org.xnio - XNIO version 3.8.16.Final
|
|
||||||
2026-05-09 09:19:52 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.16.Final
|
|
||||||
2026-05-09 09:19:52 [main] INFO org.jboss.threads - JBoss Threads version 3.7.0.Final
|
|
||||||
2026-05-09 09:19:52 [main] INFO org.dromara.DromaraApplication - Started DromaraApplication in 12.679 seconds (process running for 13.58)
|
|
||||||
2026-05-09 09:19:52 [main] INFO o.d.c.sse.listener.SseTopicListener - 初始化SSE主题订阅监听器成功
|
|
||||||
2026-05-09 09:19:52 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client is preparing to start... v1.9.0
|
|
||||||
2026-05-09 09:19:53 [main] INFO c.a.s.c.c.r.c.g.SnailJobGrpcClient - gRPC client started connect to server
|
|
||||||
2026-05-09 09:19:53 [main] INFO c.a.s.c.c.rpc.server.SnailGrpcServer - ------> snail-job remoting server start success, grpc = com.aizuda.snailjob.client.common.rpc.server.SnailGrpcServer, port = 28081
|
|
||||||
2026-05-09 09:19:53 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client started successfully v1.9.0
|
|
||||||
2026-05-09 09:19:53 [main] INFO o.d.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
|
||||||
2026-05-09 09:19:54 [RMI TCP Connection(5)-192.168.111.1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
|
||||||
2026-05-09 09:19:56 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /resource/sse],参数类型[param],参数:[{"Authorization":["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJibElseTRpcjJFZmpSUjdjVERQdnlxNXZ1M2lkbXJsZyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.uk1CGB6xuPaW8OGcIPGOmA5Fo11mEj20KiUrr11rL9k"],"clientid":["e5cd7e4891bf95d1d19206ce24a7b32e"]}]
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/user/getInfo],无参数
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/user/getInfo],耗时:[177]毫秒
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/menu/getRouters],无参数
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/menu/getRouters],耗时:[52]毫秒
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/dict/data/type/sys_user_sex],无参数
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/dict/data/type/sys_normal_disable],无参数
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/user/deptTree],无参数
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/user/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/dict/data/type/sys_normal_disable],耗时:[22]毫秒
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/dict/data/type/sys_user_sex],耗时:[23]毫秒
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /auth/tenant/list],无参数
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/config/configKey/sys.user.initPassword],无参数
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-3] INFO o.d.c.r.aspectj.RateLimiterAspect - 限制令牌 => 20, 剩余令牌 => 19, 缓存key => 'global:rate_limit:/auth/tenant/list:0:0:0:0:0:0:0:1:'
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/config/configKey/sys.user.initPassword],耗时:[14]毫秒
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-3] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /auth/tenant/list],耗时:[19]毫秒
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/user/deptTree],耗时:[144]毫秒
|
|
||||||
2026-05-09 09:20:18 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/user/list],耗时:[158]毫秒
|
|
||||||
2026-05-09 09:20:19 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /resource/sse],参数类型[param],参数:[{"Authorization":["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJibElseTRpcjJFZmpSUjdjVERQdnlxNXZ1M2lkbXJsZyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.uk1CGB6xuPaW8OGcIPGOmA5Fo11mEj20KiUrr11rL9k"],"clientid":["e5cd7e4891bf95d1d19206ce24a7b32e"]}]
|
|
||||||
2026-05-09 09:20:19 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /resource/sse],参数类型[param],参数:[{"Authorization":["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJibElseTRpcjJFZmpSUjdjVERQdnlxNXZ1M2lkbXJsZyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.uk1CGB6xuPaW8OGcIPGOmA5Fo11mEj20KiUrr11rL9k"],"clientid":["e5cd7e4891bf95d1d19206ce24a7b32e"]}]
|
|
||||||
2026-05-09 09:20:19 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /resource/sse],耗时:[4]毫秒
|
|
||||||
2026-05-09 09:20:19 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /resource/sse],参数类型[param],参数:[{"Authorization":["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJibElseTRpcjJFZmpSUjdjVERQdnlxNXZ1M2lkbXJsZyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.uk1CGB6xuPaW8OGcIPGOmA5Fo11mEj20KiUrr11rL9k"],"clientid":["e5cd7e4891bf95d1d19206ce24a7b32e"]}]
|
|
||||||
2026-05-09 09:20:19 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /resource/sse],耗时:[0]毫秒
|
|
||||||
2026-05-09 09:20:22 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /resource/sse],参数类型[param],参数:[{"Authorization":["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJibElseTRpcjJFZmpSUjdjVERQdnlxNXZ1M2lkbXJsZyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.uk1CGB6xuPaW8OGcIPGOmA5Fo11mEj20KiUrr11rL9k"],"clientid":["e5cd7e4891bf95d1d19206ce24a7b32e"]}]
|
|
||||||
2026-05-09 09:20:23 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/user/authRole/2047881868870909954],无参数
|
|
||||||
2026-05-09 09:20:23 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/user/authRole/2047881868870909954],耗时:[29]毫秒
|
|
||||||
2026-05-09 09:20:27 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:20:28 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/list],耗时:[30]毫秒
|
|
||||||
2026-05-09 09:20:30 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/4],无参数
|
|
||||||
2026-05-09 09:20:30 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/4],耗时:[12]毫秒
|
|
||||||
2026-05-09 09:20:30 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/menu/roleMenuTreeselect/4],无参数
|
|
||||||
2026-05-09 09:20:31 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/menu/roleMenuTreeselect/4],耗时:[42]毫秒
|
|
||||||
2026-05-09 09:20:57 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/dict/data/type/sys_show_hide],无参数
|
|
||||||
2026-05-09 09:20:57 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/menu/list],无参数
|
|
||||||
2026-05-09 09:20:57 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/dict/data/type/sys_show_hide],耗时:[15]毫秒
|
|
||||||
2026-05-09 09:20:57 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/menu/list],耗时:[27]毫秒
|
|
||||||
2026-05-09 09:21:00 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/menu/list],无参数
|
|
||||||
2026-05-09 09:21:00 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/menu/list],耗时:[12]毫秒
|
|
||||||
2026-05-09 09:21:00 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/menu/1],无参数
|
|
||||||
2026-05-09 09:21:00 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/menu/1],耗时:[3]毫秒
|
|
||||||
2026-05-09 09:21:07 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/dict/data/type/sys_yes_no],无参数
|
|
||||||
2026-05-09 09:21:07 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/dict/data/type/sys_yes_no],耗时:[7]毫秒
|
|
||||||
2026-05-09 09:21:07 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/config/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:21:07 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/config/list],耗时:[21]毫秒
|
|
||||||
2026-05-09 09:21:09 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/dict/type/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:21:09 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/dict/type/list],耗时:[26]毫秒
|
|
||||||
2026-05-09 09:21:09 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/dict/data/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"],"dictType":["sys_user_sex"]}]
|
|
||||||
2026-05-09 09:21:09 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/dict/data/list],耗时:[17]毫秒
|
|
||||||
2026-05-09 09:21:20 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/dict/data/type/wf_business_status],无参数
|
|
||||||
2026-05-09 09:21:20 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /workflow/task/pageByTaskWait],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:21:20 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/dict/data/type/wf_business_status],耗时:[7]毫秒
|
|
||||||
2026-05-09 09:21:20 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /workflow/task/pageByTaskWait],耗时:[79]毫秒
|
|
||||||
2026-05-09 09:21:22 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/user/getInfo],无参数
|
|
||||||
2026-05-09 09:21:22 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/user/getInfo],耗时:[9]毫秒
|
|
||||||
2026-05-09 09:21:22 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/menu/getRouters],无参数
|
|
||||||
2026-05-09 09:21:22 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/menu/getRouters],耗时:[7]毫秒
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/dict/data/type/sys_normal_disable],无参数
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/dict/data/type/wf_business_status],无参数
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/dict/data/type/sys_normal_disable],耗时:[2]毫秒
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/dict/data/type/wf_business_status],耗时:[1]毫秒
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /auth/tenant/list],无参数
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-5] INFO o.d.c.r.aspectj.RateLimiterAspect - 限制令牌 => 20, 剩余令牌 => 19, 缓存key => 'global:rate_limit:/auth/tenant/list:0:0:0:0:0:0:0:1:'
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /workflow/task/pageByTaskWait],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /auth/tenant/list],耗时:[3]毫秒
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /workflow/task/pageByTaskWait],耗时:[33]毫秒
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /resource/sse],参数类型[param],参数:[{"Authorization":["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJibElseTRpcjJFZmpSUjdjVERQdnlxNXZ1M2lkbXJsZyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.uk1CGB6xuPaW8OGcIPGOmA5Fo11mEj20KiUrr11rL9k"],"clientid":["e5cd7e4891bf95d1d19206ce24a7b32e"]}]
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /resource/sse],参数类型[param],参数:[{"Authorization":["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJibElseTRpcjJFZmpSUjdjVERQdnlxNXZ1M2lkbXJsZyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.uk1CGB6xuPaW8OGcIPGOmA5Fo11mEj20KiUrr11rL9k"],"clientid":["e5cd7e4891bf95d1d19206ce24a7b32e"]}]
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /resource/sse],耗时:[0]毫秒
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /resource/sse],参数类型[param],参数:[{"Authorization":["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJibElseTRpcjJFZmpSUjdjVERQdnlxNXZ1M2lkbXJsZyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.uk1CGB6xuPaW8OGcIPGOmA5Fo11mEj20KiUrr11rL9k"],"clientid":["e5cd7e4891bf95d1d19206ce24a7b32e"]}]
|
|
||||||
2026-05-09 09:21:23 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /resource/sse],耗时:[0]毫秒
|
|
||||||
2026-05-09 09:21:26 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /resource/sse],参数类型[param],参数:[{"Authorization":["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJibElseTRpcjJFZmpSUjdjVERQdnlxNXZ1M2lkbXJsZyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.uk1CGB6xuPaW8OGcIPGOmA5Fo11mEj20KiUrr11rL9k"],"clientid":["e5cd7e4891bf95d1d19206ce24a7b32e"]}]
|
|
||||||
2026-05-09 09:21:29 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/dict/data/type/sys_device_type],无参数
|
|
||||||
2026-05-09 09:21:29 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/dict/data/type/sys_device_type],耗时:[2]毫秒
|
|
||||||
2026-05-09 09:21:30 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /monitor/online/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:21:30 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /monitor/online/list],耗时:[75]毫秒
|
|
||||||
2026-05-09 09:21:47 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /monitor/cache],无参数
|
|
||||||
2026-05-09 09:21:47 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /monitor/cache],耗时:[33]毫秒
|
|
||||||
2026-05-09 09:22:00 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/dict/data/type/sys_user_sex],无参数
|
|
||||||
2026-05-09 09:22:00 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/dict/data/type/sys_user_sex],耗时:[2]毫秒
|
|
||||||
2026-05-09 09:22:00 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/user/deptTree],无参数
|
|
||||||
2026-05-09 09:22:00 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/user/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:22:00 [XNIO-1 task-4] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/user/deptTree],耗时:[17]毫秒
|
|
||||||
2026-05-09 09:22:00 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/user/list],耗时:[31]毫秒
|
|
||||||
2026-05-09 09:22:00 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/config/configKey/sys.user.initPassword],无参数
|
|
||||||
2026-05-09 09:22:00 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/config/configKey/sys.user.initPassword],耗时:[1]毫秒
|
|
||||||
2026-05-09 09:22:10 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:22:11 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/list],耗时:[28]毫秒
|
|
||||||
2026-05-09 09:22:18 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/4],无参数
|
|
||||||
2026-05-09 09:22:18 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/4],耗时:[7]毫秒
|
|
||||||
2026-05-09 09:22:18 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/menu/roleMenuTreeselect/4],无参数
|
|
||||||
2026-05-09 09:22:19 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/menu/roleMenuTreeselect/4],耗时:[9]毫秒
|
|
||||||
2026-05-09 09:22:32 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[PUT /system/role],参数类型[json],参数:[{"roleId":4,"roleSort":4,"status":"0","roleName":"仅本人","roleKey":"me","menuCheckStrictly":true,"deptCheckStrictly":true,"remark":"","dataScope":"5","menuIds":[5,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511],"deptIds":[],"createTime":"2026-04-24 08:32:08","flag":false,"superAdmin":false}]
|
|
||||||
2026-05-09 09:22:33 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[PUT /system/role],耗时:[148]毫秒
|
|
||||||
2026-05-09 09:22:33 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:22:33 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/list],耗时:[14]毫秒
|
|
||||||
2026-05-09 09:22:41 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[DELETE /system/role/3],无参数
|
|
||||||
2026-05-09 09:22:41 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[DELETE /system/role/3],耗时:[14]毫秒
|
|
||||||
2026-05-09 09:22:48 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/authUser/allocatedList],参数类型[param],参数:[{"roleId":["3"],"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:22:48 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/authUser/allocatedList],耗时:[27]毫秒
|
|
||||||
2026-05-09 09:22:52 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/3],无参数
|
|
||||||
2026-05-09 09:22:52 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/3],耗时:[11]毫秒
|
|
||||||
2026-05-09 09:22:52 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/deptTree/3],无参数
|
|
||||||
2026-05-09 09:22:52 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/deptTree/3],耗时:[20]毫秒
|
|
||||||
2026-05-09 09:22:57 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/4],无参数
|
|
||||||
2026-05-09 09:22:57 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/4],耗时:[10]毫秒
|
|
||||||
2026-05-09 09:22:57 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/deptTree/4],无参数
|
|
||||||
2026-05-09 09:22:57 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/deptTree/4],耗时:[14]毫秒
|
|
||||||
2026-05-09 09:23:03 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[PUT /system/role/dataScope],参数类型[json],参数:[{"roleId":4,"roleSort":4,"status":"0","roleName":"仅本人","roleKey":"me","menuCheckStrictly":true,"deptCheckStrictly":true,"remark":"","dataScope":"5","menuIds":[5,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511],"deptIds":[],"createTime":"2026-04-24 08:32:08","flag":false,"superAdmin":false}]
|
|
||||||
2026-05-09 09:23:03 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[PUT /system/role/dataScope],耗时:[11]毫秒
|
|
||||||
2026-05-09 09:23:03 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:23:03 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/list],耗时:[22]毫秒
|
|
||||||
2026-05-09 09:23:33 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/4],无参数
|
|
||||||
2026-05-09 09:23:33 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/4],耗时:[6]毫秒
|
|
||||||
2026-05-09 09:23:33 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/deptTree/4],无参数
|
|
||||||
2026-05-09 09:23:33 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/deptTree/4],耗时:[17]毫秒
|
|
||||||
2026-05-09 09:23:36 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[PUT /system/role/dataScope],参数类型[json],参数:[{"roleId":4,"roleSort":4,"status":"0","roleName":"仅本人","roleKey":"me","menuCheckStrictly":true,"deptCheckStrictly":true,"remark":"","dataScope":"1","menuIds":[5,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511],"deptIds":[],"createTime":"2026-04-24 08:32:08","flag":false,"superAdmin":false}]
|
|
||||||
2026-05-09 09:23:36 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[PUT /system/role/dataScope],耗时:[11]毫秒
|
|
||||||
2026-05-09 09:23:37 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:23:37 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/list],耗时:[22]毫秒
|
|
||||||
2026-05-09 09:24:07 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/4],无参数
|
|
||||||
2026-05-09 09:24:07 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/4],耗时:[11]毫秒
|
|
||||||
2026-05-09 09:24:07 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/deptTree/4],无参数
|
|
||||||
2026-05-09 09:24:07 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/deptTree/4],耗时:[12]毫秒
|
|
||||||
2026-05-09 09:24:11 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[PUT /system/role/dataScope],参数类型[json],参数:[{"roleId":4,"roleSort":4,"status":"0","roleName":"仅本人","roleKey":"me","menuCheckStrictly":true,"deptCheckStrictly":true,"remark":"","dataScope":"5","menuIds":[5,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511],"deptIds":[],"createTime":"2026-04-24 08:32:08","flag":false,"superAdmin":false}]
|
|
||||||
2026-05-09 09:24:11 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[PUT /system/role/dataScope],耗时:[11]毫秒
|
|
||||||
2026-05-09 09:24:12 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /system/role/list],参数类型[param],参数:[{"pageSize":["10"],"pageNum":["1"]}]
|
|
||||||
2026-05-09 09:24:12 [XNIO-1 task-5] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /system/role/list],耗时:[12]毫秒
|
|
||||||
2026-05-09 09:39:58 [Thread-5] INFO c.a.s.c.c.window.SlidingRingWindow - JVM is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:39:58 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client about to shutdown v1.9.0
|
|
||||||
2026-05-09 09:39:58 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log about to shutdown
|
|
||||||
2026-05-09 09:39:58 [SpringApplicationShutdownHook] INFO c.a.s.c.c.window.SlidingRingWindow - Sliding window is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:39:58 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log has been shutdown
|
|
||||||
2026-05-09 09:39:58 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client closed successfully v1.9.0
|
|
||||||
2026-05-09 09:40:18 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
|
||||||
2026-05-09 09:40:18 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 11260 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
|
||||||
2026-05-09 09:40:18 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
|
||||||
2026-05-09 09:40:21 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
|
||||||
2026-05-09 09:40:21 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
|
||||||
2026-05-09 09:40:21 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
|
||||||
2026-05-09 09:40:21 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@564e9c0b
|
|
||||||
2026-05-09 09:40:21 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
|
||||||
2026-05-09 09:40:21 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
|
||||||
2026-05-09 09:40:21 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
|
||||||
2026-05-09 09:40:22 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
|
||||||
2026-05-09 09:40:23 [main] INFO org.redisson.Version - Redisson 3.52.0
|
|
||||||
2026-05-09 09:40:23 [redisson-netty-1-5] INFO o.r.connection.ConnectionsHolder - 1 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:40:23 [redisson-netty-1-4] INFO o.r.connection.ConnectionsHolder - 8 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:40:24 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:40:24 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:40:24 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:40:24 [main] INFO o.d.common.json.config.JacksonConfig - 初始化 jackson 配置
|
|
||||||
2026-05-09 09:40:24 [main] INFO c.a.s.c.s.SnailJobClientJobCoreAutoConfiguration - Snail-Job 客户端IP为: 192.168.0.217
|
|
||||||
2026-05-09 09:40:24 [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware - Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1bfe3203
|
|
||||||
2026-05-09 09:40:28 [main] INFO o.d.w.p.modes.sb.config.BeanConfig - 【warm-flow】,加载完成
|
|
||||||
2026-05-09 09:40:29 [main] INFO io.undertow - starting server: Undertow - 2.3.23.Final
|
|
||||||
2026-05-09 09:40:29 [main] INFO org.xnio - XNIO version 3.8.16.Final
|
|
||||||
2026-05-09 09:40:29 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.16.Final
|
|
||||||
2026-05-09 09:40:29 [main] INFO org.jboss.threads - JBoss Threads version 3.7.0.Final
|
|
||||||
2026-05-09 09:40:29 [main] INFO org.dromara.DromaraApplication - Started DromaraApplication in 12.61 seconds (process running for 13.283)
|
|
||||||
2026-05-09 09:40:29 [main] INFO o.d.c.sse.listener.SseTopicListener - 初始化SSE主题订阅监听器成功
|
|
||||||
2026-05-09 09:40:29 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client is preparing to start... v1.9.0
|
|
||||||
2026-05-09 09:40:30 [main] INFO c.a.s.c.c.r.c.g.SnailJobGrpcClient - gRPC client started connect to server
|
|
||||||
2026-05-09 09:40:30 [main] INFO c.a.s.c.c.rpc.server.SnailGrpcServer - ------> snail-job remoting server start success, grpc = com.aizuda.snailjob.client.common.rpc.server.SnailGrpcServer, port = 28081
|
|
||||||
2026-05-09 09:40:30 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client started successfully v1.9.0
|
|
||||||
2026-05-09 09:40:31 [main] INFO o.d.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
|
||||||
2026-05-09 09:40:31 [RMI TCP Connection(5)-192.168.111.1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
|
||||||
2026-05-09 09:40:34 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /resource/sse],参数类型[param],参数:[{"Authorization":["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJibElseTRpcjJFZmpSUjdjVERQdnlxNXZ1M2lkbXJsZyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.uk1CGB6xuPaW8OGcIPGOmA5Fo11mEj20KiUrr11rL9k"],"clientid":["e5cd7e4891bf95d1d19206ce24a7b32e"]}]
|
|
||||||
2026-05-09 09:40:46 [Thread-5] INFO c.a.s.c.c.window.SlidingRingWindow - JVM is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:40:46 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client about to shutdown v1.9.0
|
|
||||||
2026-05-09 09:40:46 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log about to shutdown
|
|
||||||
2026-05-09 09:40:46 [SpringApplicationShutdownHook] INFO c.a.s.c.c.window.SlidingRingWindow - Sliding window is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:40:46 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log has been shutdown
|
|
||||||
2026-05-09 09:40:46 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client closed successfully v1.9.0
|
|
||||||
2026-05-09 09:40:56 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
|
||||||
2026-05-09 09:40:56 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 14948 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
|
||||||
2026-05-09 09:40:56 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
|
||||||
2026-05-09 09:40:59 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
|
||||||
2026-05-09 09:41:00 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
|
||||||
2026-05-09 09:41:00 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
|
||||||
2026-05-09 09:41:00 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@564e9c0b
|
|
||||||
2026-05-09 09:41:00 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
|
||||||
2026-05-09 09:41:00 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
|
||||||
2026-05-09 09:41:00 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
|
||||||
2026-05-09 09:41:01 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
|
||||||
2026-05-09 09:41:01 [main] INFO org.redisson.Version - Redisson 3.52.0
|
|
||||||
2026-05-09 09:41:02 [redisson-netty-1-5] INFO o.r.connection.ConnectionsHolder - 1 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:41:02 [redisson-netty-1-4] INFO o.r.connection.ConnectionsHolder - 8 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:41:02 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:41:02 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:41:02 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:41:03 [main] INFO o.d.common.json.config.JacksonConfig - 初始化 jackson 配置
|
|
||||||
2026-05-09 09:41:03 [main] INFO c.a.s.c.s.SnailJobClientJobCoreAutoConfiguration - Snail-Job 客户端IP为: 192.168.0.217
|
|
||||||
2026-05-09 09:41:03 [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware - Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1bfe3203
|
|
||||||
2026-05-09 09:41:07 [main] INFO o.d.w.p.modes.sb.config.BeanConfig - 【warm-flow】,加载完成
|
|
||||||
2026-05-09 09:41:08 [main] INFO io.undertow - starting server: Undertow - 2.3.23.Final
|
|
||||||
2026-05-09 09:41:08 [main] INFO org.xnio - XNIO version 3.8.16.Final
|
|
||||||
2026-05-09 09:41:08 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.16.Final
|
|
||||||
2026-05-09 09:41:08 [main] INFO org.jboss.threads - JBoss Threads version 3.7.0.Final
|
|
||||||
2026-05-09 09:41:08 [main] INFO org.dromara.DromaraApplication - Started DromaraApplication in 13.118 seconds (process running for 13.776)
|
|
||||||
2026-05-09 09:41:08 [main] INFO o.d.c.sse.listener.SseTopicListener - 初始化SSE主题订阅监听器成功
|
|
||||||
2026-05-09 09:41:08 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client is preparing to start... v1.9.0
|
|
||||||
2026-05-09 09:41:09 [main] INFO c.a.s.c.c.r.c.g.SnailJobGrpcClient - gRPC client started connect to server
|
|
||||||
2026-05-09 09:41:09 [main] INFO c.a.s.c.c.rpc.server.SnailGrpcServer - ------> snail-job remoting server start success, grpc = com.aizuda.snailjob.client.common.rpc.server.SnailGrpcServer, port = 28081
|
|
||||||
2026-05-09 09:41:09 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client started successfully v1.9.0
|
|
||||||
2026-05-09 09:41:10 [main] INFO o.d.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
|
||||||
2026-05-09 09:41:10 [RMI TCP Connection(20)-192.168.111.1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
|
||||||
2026-05-09 09:41:38 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
|
||||||
2026-05-09 09:41:38 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[191]毫秒
|
|
||||||
2026-05-09 09:42:13 [Thread-5] INFO c.a.s.c.c.window.SlidingRingWindow - JVM is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:42:13 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client about to shutdown v1.9.0
|
|
||||||
2026-05-09 09:42:13 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log about to shutdown
|
|
||||||
2026-05-09 09:42:13 [SpringApplicationShutdownHook] INFO c.a.s.c.c.window.SlidingRingWindow - Sliding window is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:42:13 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log has been shutdown
|
|
||||||
2026-05-09 09:42:13 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client closed successfully v1.9.0
|
|
||||||
2026-05-09 09:42:13 [SpringApplicationShutdownHook] INFO io.undertow - stopping server: Undertow - 2.3.23.Final
|
|
||||||
2026-05-09 09:42:13 [SpringApplicationShutdownHook] INFO o.d.c.core.config.ThreadPoolConfig - ====关闭后台任务任务线程池====
|
|
||||||
2026-05-09 09:42:13 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource start closing ....
|
|
||||||
2026-05-09 09:42:13 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown initiated...
|
|
||||||
2026-05-09 09:42:13 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown completed.
|
|
||||||
2026-05-09 09:42:13 [SpringApplicationShutdownHook] INFO c.b.d.d.d.DefaultDataSourceDestroyer - dynamic-datasource close the datasource named [master] success,
|
|
||||||
2026-05-09 09:42:13 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
|
|
||||||
2026-05-09 09:42:13 [SpringApplicationShutdownHook] INFO io.undertow.servlet - Destroying Spring FrameworkServlet 'dispatcherServlet'
|
|
||||||
2026-05-09 09:42:19 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
|
||||||
2026-05-09 09:42:19 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 34292 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
|
||||||
2026-05-09 09:42:19 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
|
||||||
2026-05-09 09:42:22 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
|
||||||
2026-05-09 09:42:22 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
|
||||||
2026-05-09 09:42:22 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
|
||||||
2026-05-09 09:42:23 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@6c4eccd2
|
|
||||||
2026-05-09 09:42:23 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
|
||||||
2026-05-09 09:42:23 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
|
||||||
2026-05-09 09:42:23 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
|
||||||
2026-05-09 09:42:24 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
|
||||||
2026-05-09 09:42:24 [main] INFO org.redisson.Version - Redisson 3.52.0
|
|
||||||
2026-05-09 09:42:24 [redisson-netty-1-5] INFO o.r.connection.ConnectionsHolder - 1 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:42:24 [redisson-netty-1-4] INFO o.r.connection.ConnectionsHolder - 8 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:42:25 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:42:25 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:42:25 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:42:25 [main] INFO o.d.common.json.config.JacksonConfig - 初始化 jackson 配置
|
|
||||||
2026-05-09 09:42:26 [main] INFO c.a.s.c.s.SnailJobClientJobCoreAutoConfiguration - Snail-Job 客户端IP为: 192.168.0.217
|
|
||||||
2026-05-09 09:42:26 [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware - Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@65bb9029
|
|
||||||
2026-05-09 09:42:30 [main] INFO o.d.w.p.modes.sb.config.BeanConfig - 【warm-flow】,加载完成
|
|
||||||
2026-05-09 09:42:31 [main] INFO io.undertow - starting server: Undertow - 2.3.23.Final
|
|
||||||
2026-05-09 09:42:31 [main] INFO org.xnio - XNIO version 3.8.16.Final
|
|
||||||
2026-05-09 09:42:31 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.16.Final
|
|
||||||
2026-05-09 09:42:31 [main] INFO org.jboss.threads - JBoss Threads version 3.7.0.Final
|
|
||||||
2026-05-09 09:42:31 [main] INFO org.dromara.DromaraApplication - Started DromaraApplication in 12.491 seconds (process running for 13.272)
|
|
||||||
2026-05-09 09:42:31 [main] INFO o.d.c.sse.listener.SseTopicListener - 初始化SSE主题订阅监听器成功
|
|
||||||
2026-05-09 09:42:31 [main] INFO o.d.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
|
||||||
2026-05-09 09:42:31 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client is preparing to start... v1.9.0
|
|
||||||
2026-05-09 09:42:31 [main] INFO c.a.s.c.c.r.c.g.SnailJobGrpcClient - gRPC client started connect to server
|
|
||||||
2026-05-09 09:42:32 [main] INFO c.a.s.c.c.rpc.server.SnailGrpcServer - ------> snail-job remoting server start success, grpc = com.aizuda.snailjob.client.common.rpc.server.SnailGrpcServer, port = 28081
|
|
||||||
2026-05-09 09:42:32 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client started successfully v1.9.0
|
|
||||||
2026-05-09 09:42:32 [RMI TCP Connection(7)-192.168.111.1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
|
||||||
2026-05-09 09:43:11 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
|
||||||
2026-05-09 09:43:11 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[211]毫秒
|
|
||||||
2026-05-09 09:47:25 [Thread-5] INFO c.a.s.c.c.window.SlidingRingWindow - JVM is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:47:25 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client about to shutdown v1.9.0
|
|
||||||
2026-05-09 09:47:25 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log about to shutdown
|
|
||||||
2026-05-09 09:47:25 [SpringApplicationShutdownHook] INFO c.a.s.c.c.window.SlidingRingWindow - Sliding window is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:47:25 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log has been shutdown
|
|
||||||
2026-05-09 09:47:25 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client closed successfully v1.9.0
|
|
||||||
2026-05-09 09:47:25 [SpringApplicationShutdownHook] INFO io.undertow - stopping server: Undertow - 2.3.23.Final
|
|
||||||
2026-05-09 09:47:25 [SpringApplicationShutdownHook] INFO o.d.c.core.config.ThreadPoolConfig - ====关闭后台任务任务线程池====
|
|
||||||
2026-05-09 09:47:25 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource start closing ....
|
|
||||||
2026-05-09 09:47:25 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown initiated...
|
|
||||||
2026-05-09 09:47:25 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown completed.
|
|
||||||
2026-05-09 09:47:25 [SpringApplicationShutdownHook] INFO c.b.d.d.d.DefaultDataSourceDestroyer - dynamic-datasource close the datasource named [master] success,
|
|
||||||
2026-05-09 09:47:25 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
|
|
||||||
2026-05-09 09:47:25 [SpringApplicationShutdownHook] INFO io.undertow.servlet - Destroying Spring FrameworkServlet 'dispatcherServlet'
|
|
||||||
2026-05-09 09:47:29 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
|
||||||
2026-05-09 09:47:29 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 11244 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
|
||||||
2026-05-09 09:47:29 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
|
||||||
2026-05-09 09:47:32 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
|
||||||
2026-05-09 09:47:32 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
|
||||||
2026-05-09 09:47:32 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
|
||||||
2026-05-09 09:47:32 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@564e9c0b
|
|
||||||
2026-05-09 09:47:32 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
|
||||||
2026-05-09 09:47:32 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
|
||||||
2026-05-09 09:47:32 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
|
||||||
2026-05-09 09:47:34 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
|
||||||
2026-05-09 09:47:35 [main] INFO org.redisson.Version - Redisson 3.52.0
|
|
||||||
2026-05-09 09:47:35 [redisson-netty-1-5] INFO o.r.connection.ConnectionsHolder - 1 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:47:35 [redisson-netty-1-4] INFO o.r.connection.ConnectionsHolder - 8 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:47:36 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:47:36 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:47:36 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:47:37 [main] INFO o.d.common.json.config.JacksonConfig - 初始化 jackson 配置
|
|
||||||
2026-05-09 09:47:37 [main] INFO c.a.s.c.s.SnailJobClientJobCoreAutoConfiguration - Snail-Job 客户端IP为: 192.168.0.217
|
|
||||||
2026-05-09 09:47:37 [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware - Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1bfe3203
|
|
||||||
2026-05-09 09:47:45 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
|
||||||
2026-05-09 09:47:45 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 32536 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
|
||||||
2026-05-09 09:47:45 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
|
||||||
2026-05-09 09:47:48 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
|
||||||
2026-05-09 09:47:48 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
|
||||||
2026-05-09 09:47:48 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
|
||||||
2026-05-09 09:47:48 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@21d478f3
|
|
||||||
2026-05-09 09:47:48 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
|
||||||
2026-05-09 09:47:48 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
|
||||||
2026-05-09 09:47:48 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
|
||||||
2026-05-09 09:47:50 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
|
||||||
2026-05-09 09:47:50 [main] INFO org.redisson.Version - Redisson 3.52.0
|
|
||||||
2026-05-09 09:47:50 [redisson-netty-1-5] INFO o.r.connection.ConnectionsHolder - 1 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:47:50 [redisson-netty-1-4] INFO o.r.connection.ConnectionsHolder - 8 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:47:51 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:47:51 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:47:51 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:47:52 [main] INFO o.d.common.json.config.JacksonConfig - 初始化 jackson 配置
|
|
||||||
2026-05-09 09:47:52 [main] INFO c.a.s.c.s.SnailJobClientJobCoreAutoConfiguration - Snail-Job 客户端IP为: 192.168.0.217
|
|
||||||
2026-05-09 09:47:52 [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware - Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1bfe3203
|
|
||||||
2026-05-09 09:47:57 [main] INFO o.d.w.p.modes.sb.config.BeanConfig - 【warm-flow】,加载完成
|
|
||||||
2026-05-09 09:47:57 [main] INFO io.undertow - starting server: Undertow - 2.3.23.Final
|
|
||||||
2026-05-09 09:47:57 [main] INFO org.xnio - XNIO version 3.8.16.Final
|
|
||||||
2026-05-09 09:47:58 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.16.Final
|
|
||||||
2026-05-09 09:47:58 [main] INFO org.jboss.threads - JBoss Threads version 3.7.0.Final
|
|
||||||
2026-05-09 09:47:58 [main] INFO org.dromara.DromaraApplication - Started DromaraApplication in 13.714 seconds (process running for 14.472)
|
|
||||||
2026-05-09 09:47:58 [main] INFO o.d.c.sse.listener.SseTopicListener - 初始化SSE主题订阅监听器成功
|
|
||||||
2026-05-09 09:47:58 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client is preparing to start... v1.9.0
|
|
||||||
2026-05-09 09:47:58 [main] INFO c.a.s.c.c.r.c.g.SnailJobGrpcClient - gRPC client started connect to server
|
|
||||||
2026-05-09 09:47:58 [main] INFO c.a.s.c.c.rpc.server.SnailGrpcServer - ------> snail-job remoting server start success, grpc = com.aizuda.snailjob.client.common.rpc.server.SnailGrpcServer, port = 28081
|
|
||||||
2026-05-09 09:47:59 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client started successfully v1.9.0
|
|
||||||
2026-05-09 09:47:59 [main] INFO o.d.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
|
||||||
2026-05-09 09:47:59 [RMI TCP Connection(21)-192.168.111.1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
|
||||||
2026-05-09 09:48:24 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
|
||||||
2026-05-09 09:48:24 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[186]毫秒
|
|
||||||
2026-05-09 09:49:55 [Thread-5] INFO c.a.s.c.c.window.SlidingRingWindow - JVM is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:49:55 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client about to shutdown v1.9.0
|
|
||||||
2026-05-09 09:49:55 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log about to shutdown
|
|
||||||
2026-05-09 09:49:55 [SpringApplicationShutdownHook] INFO c.a.s.c.c.window.SlidingRingWindow - Sliding window is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:49:55 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log has been shutdown
|
|
||||||
2026-05-09 09:49:55 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client closed successfully v1.9.0
|
|
||||||
2026-05-09 09:49:55 [SpringApplicationShutdownHook] INFO io.undertow - stopping server: Undertow - 2.3.23.Final
|
|
||||||
2026-05-09 09:49:55 [SpringApplicationShutdownHook] INFO o.d.c.core.config.ThreadPoolConfig - ====关闭后台任务任务线程池====
|
|
||||||
2026-05-09 09:49:55 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource start closing ....
|
|
||||||
2026-05-09 09:49:55 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown initiated...
|
|
||||||
2026-05-09 09:49:55 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown completed.
|
|
||||||
2026-05-09 09:49:55 [SpringApplicationShutdownHook] INFO c.b.d.d.d.DefaultDataSourceDestroyer - dynamic-datasource close the datasource named [master] success,
|
|
||||||
2026-05-09 09:49:55 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
|
|
||||||
2026-05-09 09:49:55 [SpringApplicationShutdownHook] INFO io.undertow.servlet - Destroying Spring FrameworkServlet 'dispatcherServlet'
|
|
||||||
2026-05-09 09:50:00 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
|
||||||
2026-05-09 09:50:00 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 15312 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
|
||||||
2026-05-09 09:50:00 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
|
||||||
2026-05-09 09:50:03 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
|
||||||
2026-05-09 09:50:03 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
|
||||||
2026-05-09 09:50:03 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
|
||||||
2026-05-09 09:50:04 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@5367d46f
|
|
||||||
2026-05-09 09:50:04 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
|
||||||
2026-05-09 09:50:04 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
|
||||||
2026-05-09 09:50:04 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
|
||||||
2026-05-09 09:50:05 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
|
||||||
2026-05-09 09:50:05 [main] INFO org.redisson.Version - Redisson 3.52.0
|
|
||||||
2026-05-09 09:50:05 [redisson-netty-1-5] INFO o.r.connection.ConnectionsHolder - 1 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:50:05 [redisson-netty-1-4] INFO o.r.connection.ConnectionsHolder - 8 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:50:06 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:50:06 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:50:06 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:50:06 [main] INFO o.d.common.json.config.JacksonConfig - 初始化 jackson 配置
|
|
||||||
2026-05-09 09:50:07 [main] INFO c.a.s.c.s.SnailJobClientJobCoreAutoConfiguration - Snail-Job 客户端IP为: 192.168.0.217
|
|
||||||
2026-05-09 09:50:07 [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware - Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1bfe3203
|
|
||||||
2026-05-09 09:50:11 [main] INFO o.d.w.p.modes.sb.config.BeanConfig - 【warm-flow】,加载完成
|
|
||||||
2026-05-09 09:50:12 [main] INFO io.undertow - starting server: Undertow - 2.3.23.Final
|
|
||||||
2026-05-09 09:50:12 [main] INFO org.xnio - XNIO version 3.8.16.Final
|
|
||||||
2026-05-09 09:50:12 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.16.Final
|
|
||||||
2026-05-09 09:50:12 [main] INFO org.jboss.threads - JBoss Threads version 3.7.0.Final
|
|
||||||
2026-05-09 09:50:12 [main] INFO org.dromara.DromaraApplication - Started DromaraApplication in 12.908 seconds (process running for 13.548)
|
|
||||||
2026-05-09 09:50:12 [main] INFO o.d.c.sse.listener.SseTopicListener - 初始化SSE主题订阅监听器成功
|
|
||||||
2026-05-09 09:50:12 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client is preparing to start... v1.9.0
|
|
||||||
2026-05-09 09:50:12 [main] INFO c.a.s.c.c.r.c.g.SnailJobGrpcClient - gRPC client started connect to server
|
|
||||||
2026-05-09 09:50:13 [main] INFO c.a.s.c.c.rpc.server.SnailGrpcServer - ------> snail-job remoting server start success, grpc = com.aizuda.snailjob.client.common.rpc.server.SnailGrpcServer, port = 28081
|
|
||||||
2026-05-09 09:50:13 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client started successfully v1.9.0
|
|
||||||
2026-05-09 09:50:13 [main] INFO o.d.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
|
||||||
2026-05-09 09:50:14 [RMI TCP Connection(9)-192.168.111.1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
|
||||||
2026-05-09 09:50:18 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
|
||||||
2026-05-09 09:50:18 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[217]毫秒
|
|
||||||
2026-05-09 09:50:43 [Thread-5] INFO c.a.s.c.c.window.SlidingRingWindow - JVM is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:50:43 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client about to shutdown v1.9.0
|
|
||||||
2026-05-09 09:50:43 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log about to shutdown
|
|
||||||
2026-05-09 09:50:43 [SpringApplicationShutdownHook] INFO c.a.s.c.c.window.SlidingRingWindow - Sliding window is about to exit, emitting data in the Window
|
|
||||||
2026-05-09 09:50:43 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log has been shutdown
|
|
||||||
2026-05-09 09:50:43 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client closed successfully v1.9.0
|
|
||||||
2026-05-09 09:50:43 [SpringApplicationShutdownHook] INFO io.undertow - stopping server: Undertow - 2.3.23.Final
|
|
||||||
2026-05-09 09:50:43 [SpringApplicationShutdownHook] INFO o.d.c.core.config.ThreadPoolConfig - ====关闭后台任务任务线程池====
|
|
||||||
2026-05-09 09:50:43 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource start closing ....
|
|
||||||
2026-05-09 09:50:43 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown initiated...
|
|
||||||
2026-05-09 09:50:43 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown completed.
|
|
||||||
2026-05-09 09:50:43 [SpringApplicationShutdownHook] INFO c.b.d.d.d.DefaultDataSourceDestroyer - dynamic-datasource close the datasource named [master] success,
|
|
||||||
2026-05-09 09:50:43 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
|
|
||||||
2026-05-09 09:50:43 [SpringApplicationShutdownHook] INFO io.undertow.servlet - Destroying Spring FrameworkServlet 'dispatcherServlet'
|
|
||||||
2026-05-09 09:50:48 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
|
||||||
2026-05-09 09:50:48 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 27588 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
|
||||||
2026-05-09 09:50:48 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
|
||||||
2026-05-09 09:50:51 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
|
||||||
2026-05-09 09:50:51 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
|
||||||
2026-05-09 09:50:51 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
|
||||||
2026-05-09 09:50:51 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@5367d46f
|
|
||||||
2026-05-09 09:50:51 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
|
||||||
2026-05-09 09:50:51 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
|
||||||
2026-05-09 09:50:51 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
|
||||||
2026-05-09 09:50:52 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
|
||||||
2026-05-09 09:50:52 [main] INFO org.redisson.Version - Redisson 3.52.0
|
|
||||||
2026-05-09 09:50:53 [redisson-netty-1-5] INFO o.r.connection.ConnectionsHolder - 1 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:50:53 [redisson-netty-1-4] INFO o.r.connection.ConnectionsHolder - 8 connections initialized for localhost/127.0.0.1:6379
|
|
||||||
2026-05-09 09:50:54 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:50:54 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:50:54 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
|
||||||
2026-05-09 09:50:54 [main] INFO o.d.common.json.config.JacksonConfig - 初始化 jackson 配置
|
|
||||||
2026-05-09 09:50:54 [main] INFO c.a.s.c.s.SnailJobClientJobCoreAutoConfiguration - Snail-Job 客户端IP为: 192.168.0.217
|
|
||||||
2026-05-09 09:50:54 [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware - Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1bfe3203
|
|
||||||
2026-05-09 09:50:58 [main] INFO o.d.w.p.modes.sb.config.BeanConfig - 【warm-flow】,加载完成
|
|
||||||
2026-05-09 09:50:59 [main] INFO io.undertow - starting server: Undertow - 2.3.23.Final
|
|
||||||
2026-05-09 09:50:59 [main] INFO org.xnio - XNIO version 3.8.16.Final
|
|
||||||
2026-05-09 09:50:59 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.16.Final
|
|
||||||
2026-05-09 09:50:59 [main] INFO org.jboss.threads - JBoss Threads version 3.7.0.Final
|
|
||||||
2026-05-09 09:50:59 [main] INFO org.dromara.DromaraApplication - Started DromaraApplication in 12.544 seconds (process running for 13.162)
|
|
||||||
2026-05-09 09:50:59 [main] INFO o.d.c.sse.listener.SseTopicListener - 初始化SSE主题订阅监听器成功
|
|
||||||
2026-05-09 09:50:59 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client is preparing to start... v1.9.0
|
|
||||||
2026-05-09 09:51:00 [main] INFO c.a.s.c.c.r.c.g.SnailJobGrpcClient - gRPC client started connect to server
|
|
||||||
2026-05-09 09:51:00 [main] INFO c.a.s.c.c.rpc.server.SnailGrpcServer - ------> snail-job remoting server start success, grpc = com.aizuda.snailjob.client.common.rpc.server.SnailGrpcServer, port = 28081
|
|
||||||
2026-05-09 09:51:00 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client started successfully v1.9.0
|
|
||||||
2026-05-09 09:51:01 [main] INFO o.d.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
|
||||||
2026-05-09 09:51:01 [RMI TCP Connection(5)-192.168.111.1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
|
||||||
2026-05-09 09:51:20 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
|
||||||
2026-05-09 09:51:20 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[160]毫秒
|
|
||||||
2026-05-09 09:52:40 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
|
||||||
2026-05-09 09:52:40 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[15]毫秒
|
|
||||||
2026-05-09 09:52:41 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]开始请求 => URL[GET /app/v1/deviceList],无参数
|
|
||||||
2026-05-09 09:52:42 [XNIO-1 task-2] INFO o.d.c.w.i.PlusWebInvokeTimeInterceptor - [PLUS]结束请求 => URL[GET /app/v1/deviceList],耗时:[21]毫秒
|
|
||||||
|
|||||||
@@ -64,7 +64,11 @@
|
|||||||
<groupId>org.dromara</groupId>
|
<groupId>org.dromara</groupId>
|
||||||
<artifactId>water-common-mail</artifactId>
|
<artifactId>water-common-mail</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-common-mqtt</artifactId>
|
||||||
|
<version>5.6.0</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dromara</groupId>
|
<groupId>org.dromara</groupId>
|
||||||
<artifactId>water-system</artifactId>
|
<artifactId>water-system</artifactId>
|
||||||
@@ -109,6 +113,11 @@
|
|||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- skywalking 整合 logback -->
|
<!-- skywalking 整合 logback -->
|
||||||
<!-- <dependency>-->
|
<!-- <dependency>-->
|
||||||
|
|||||||
@@ -66,22 +66,22 @@ public class CaptchaController {
|
|||||||
String code = RandomUtil.randomNumbers(6);
|
String code = RandomUtil.randomNumbers(6);
|
||||||
RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
|
RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
|
||||||
|
|
||||||
if (Validator.isMobile(username)){
|
// if (Validator.isMobile(username)){
|
||||||
// 验证码模板id 自行处理 (查数据库或写死均可)
|
// // 验证码模板id 自行处理 (查数据库或写死均可)
|
||||||
String templateId = "";
|
// String templateId = "SMS_333877107";
|
||||||
LinkedHashMap<String, String> map = new LinkedHashMap<>(1);
|
// LinkedHashMap<String, String> map = new LinkedHashMap<>(1);
|
||||||
map.put("code", code);
|
// map.put("code", code);
|
||||||
SmsBlend smsBlend = SmsFactory.getSmsBlend("config1");
|
// SmsBlend smsBlend = SmsFactory.getSmsBlend("config1");
|
||||||
SmsResponse smsResponse = smsBlend.sendMessage(username, templateId, map);
|
// SmsResponse smsResponse = smsBlend.sendMessage(username, templateId, map);
|
||||||
if (!smsResponse.isSuccess()) {
|
// if (!smsResponse.isSuccess()) {
|
||||||
log.error("验证码短信发送异常 => {}", smsResponse);
|
// log.error("验证码短信发送异常 => {}", smsResponse);
|
||||||
return R.fail(smsResponse.getData().toString());
|
// return R.fail(smsResponse.getData().toString());
|
||||||
}
|
// }
|
||||||
}else {
|
// }else {
|
||||||
emailCodeImpl(username);
|
// emailCodeImpl(username);
|
||||||
}
|
// }
|
||||||
|
|
||||||
return R.ok();
|
return R.ok(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -96,10 +96,10 @@ public class CaptchaController {
|
|||||||
@GetMapping("/resource/sms/code")
|
@GetMapping("/resource/sms/code")
|
||||||
public R<Void> smsCode(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) {
|
public R<Void> smsCode(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) {
|
||||||
String key = GlobalConstants.CAPTCHA_CODE_KEY + phonenumber;
|
String key = GlobalConstants.CAPTCHA_CODE_KEY + phonenumber;
|
||||||
String code = RandomUtil.randomNumbers(4);
|
String code = RandomUtil.randomNumbers(6);
|
||||||
RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
|
RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
|
||||||
// 验证码模板id 自行处理 (查数据库或写死均可)
|
// 验证码模板id 自行处理 (查数据库或写死均可)
|
||||||
String templateId = "";
|
String templateId = "SMS_333877107";
|
||||||
LinkedHashMap<String, String> map = new LinkedHashMap<>(1);
|
LinkedHashMap<String, String> map = new LinkedHashMap<>(1);
|
||||||
map.put("code", code);
|
map.put("code", code);
|
||||||
SmsBlend smsBlend = SmsFactory.getSmsBlend("config1");
|
SmsBlend smsBlend = SmsFactory.getSmsBlend("config1");
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
--- # 监控中心配置
|
--- # 监控中心配置
|
||||||
spring.boot.admin.client:
|
spring.boot.admin.client:
|
||||||
# 增加客户端开关
|
# 增加客户端开关
|
||||||
enabled: true
|
enabled: false
|
||||||
url: http://localhost:9090/admin
|
url: http://localhost:9090/admin
|
||||||
instance:
|
instance:
|
||||||
service-host-type: IP
|
service-host-type: IP
|
||||||
@@ -13,7 +13,7 @@ spring.boot.admin.client:
|
|||||||
|
|
||||||
--- # snail-job 配置
|
--- # snail-job 配置
|
||||||
snail-job:
|
snail-job:
|
||||||
enabled: true
|
enabled: false
|
||||||
# 需要在 SnailJob 后台组管理创建对应名称的组,然后创建任务的时候选择对应的组,才能正确分派任务
|
# 需要在 SnailJob 后台组管理创建对应名称的组,然后创建任务的时候选择对应的组,才能正确分派任务
|
||||||
group: "water_group"
|
group: "water_group"
|
||||||
# SnailJob 接入验证令牌 详见 script/sql/ry_job.sql `sj_group_config` 表
|
# SnailJob 接入验证令牌 详见 script/sql/ry_job.sql `sj_group_config` 表
|
||||||
@@ -172,10 +172,10 @@ sms:
|
|||||||
# 框架定义的厂商名称标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分
|
# 框架定义的厂商名称标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分
|
||||||
supplier: alibaba
|
supplier: alibaba
|
||||||
# 有些称为accessKey有些称之为apiKey,也有称为sdkKey或者appId。
|
# 有些称为accessKey有些称之为apiKey,也有称为sdkKey或者appId。
|
||||||
access-key-id: 您的accessKey
|
access-key-id: LTAI5t7xHqxFKG9DwMgurvrn
|
||||||
# 称为accessSecret有些称之为apiSecret
|
# 称为accessSecret有些称之为apiSecret
|
||||||
access-key-secret: 您的accessKeySecret
|
access-key-secret: nNFjR8YwNJUcMrrtdc4pkpPsHmYtfp
|
||||||
signature: 您的短信签名
|
signature: 山东春雨润集雨节灌设备
|
||||||
sdk-app-id: 您的sdkAppId
|
sdk-app-id: 您的sdkAppId
|
||||||
config2:
|
config2:
|
||||||
# 厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分
|
# 厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分
|
||||||
|
|||||||
@@ -19,6 +19,31 @@ server:
|
|||||||
io: 8
|
io: 8
|
||||||
# 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
|
# 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
|
||||||
worker: 256
|
worker: 256
|
||||||
|
--- # mqtt配置信息
|
||||||
|
--- # mqtt配置信息
|
||||||
|
mqtt:
|
||||||
|
broker-url: ssl://service.reinkun.com:8883
|
||||||
|
username: admin
|
||||||
|
password: yukun_mqtt
|
||||||
|
client-id: dm-server-${random.int[1000,9999]}
|
||||||
|
qos: 1
|
||||||
|
keep-alive: 60
|
||||||
|
connection-timeout: 30
|
||||||
|
tls:
|
||||||
|
enabled: true
|
||||||
|
skip-verify: true
|
||||||
|
topics:
|
||||||
|
subscribe:
|
||||||
|
|
||||||
|
- /publish/+/error
|
||||||
|
- /publish/deviceInfo
|
||||||
|
- /publish/finish/schedule
|
||||||
|
- /publish/finish/key
|
||||||
|
- /publish/schedule/canceled
|
||||||
|
- /subscriber/+/schedule
|
||||||
|
- /subscriber/+/cancel
|
||||||
|
- /subscriber/+/key
|
||||||
|
publish-prefix: /water
|
||||||
captcha:
|
captcha:
|
||||||
# 是否启用验证码校验
|
# 是否启用验证码校验
|
||||||
enable: true
|
enable: true
|
||||||
@@ -150,6 +175,7 @@ mybatis-plus:
|
|||||||
# AUTO 自增 NONE 空 INPUT 用户输入 ASSIGN_ID 雪花 ASSIGN_UUID 唯一 UUID
|
# AUTO 自增 NONE 空 INPUT 用户输入 ASSIGN_ID 雪花 ASSIGN_UUID 唯一 UUID
|
||||||
# 如需改为自增 需要将数据库表全部设置为自增
|
# 如需改为自增 需要将数据库表全部设置为自增
|
||||||
idType: ASSIGN_ID
|
idType: ASSIGN_ID
|
||||||
|
sql-injector: com.example.MyLogicSqlInjector
|
||||||
|
|
||||||
# 数据加密
|
# 数据加密
|
||||||
mybatis-encryptor:
|
mybatis-encryptor:
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
<module>water-common-tenant</module>
|
<module>water-common-tenant</module>
|
||||||
<module>water-common-websocket</module>
|
<module>water-common-websocket</module>
|
||||||
<module>water-common-sse</module>
|
<module>water-common-sse</module>
|
||||||
|
<module>water-common-mqtt</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<artifactId>water-common</artifactId>
|
<artifactId>water-common</artifactId>
|
||||||
|
|||||||
43
water-common/water-common-mqtt/pom.xml
Normal file
43
water-common/water-common-mqtt/pom.xml
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-common</artifactId>
|
||||||
|
<version>5.6.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>water-common-mqtt</artifactId>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>17</maven.compiler.source>
|
||||||
|
<maven.compiler.target>17</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.paho</groupId>
|
||||||
|
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
|
||||||
|
<version>1.2.5</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-context</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-common-json</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-app</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
package org.dromara.mqtt;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.app.mqtt.MqttMessageDispatcher;
|
||||||
|
import org.dromara.mqtt.config.properties.MqttProperties;
|
||||||
|
import org.eclipse.paho.client.mqttv3.*;
|
||||||
|
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
|
||||||
|
import org.springframework.beans.factory.DisposableBean;
|
||||||
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
|
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||||
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@AutoConfiguration
|
||||||
|
@EnableConfigurationProperties(MqttProperties.class)
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class MqttClientManager implements InitializingBean, DisposableBean {
|
||||||
|
|
||||||
|
private final MqttProperties props;
|
||||||
|
private final MqttMessageDispatcher dispatcher;
|
||||||
|
private MqttClient client;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterPropertiesSet() throws Exception {
|
||||||
|
// mqttConnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
private MqttClient mqttConnect() throws MqttException {
|
||||||
|
client = new MqttClient(props.getBrokerUrl(), props.getClientId(), new MemoryPersistence());
|
||||||
|
|
||||||
|
MqttConnectOptions options = new MqttConnectOptions();
|
||||||
|
options.setUserName(props.getUsername());
|
||||||
|
options.setPassword(props.getPassword().toCharArray());
|
||||||
|
options.setKeepAliveInterval(props.getKeepAlive());
|
||||||
|
options.setConnectionTimeout(props.getConnectionTimeout());
|
||||||
|
options.setAutomaticReconnect(true);
|
||||||
|
options.setCleanSession(false);
|
||||||
|
|
||||||
|
client.setCallback(new MqttCallback() {
|
||||||
|
@Override
|
||||||
|
public void connectionLost(Throwable cause) {
|
||||||
|
log.warn("[MQTT] 连接断开: {}", cause.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void messageArrived(String topic, MqttMessage message) {
|
||||||
|
dispatcher.dispatch(topic, new String(message.getPayload()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deliveryComplete(IMqttDeliveryToken token) {}
|
||||||
|
});
|
||||||
|
|
||||||
|
client.connect(options);
|
||||||
|
log.info("[MQTT] 连接成功: {}", props.getBrokerUrl());
|
||||||
|
|
||||||
|
// 订阅所有配置的主题
|
||||||
|
for (String topic : props.getTopics().getSubscribe()) {
|
||||||
|
client.subscribe(topic, props.getQos());
|
||||||
|
// log.info("[MQTT] 订阅主题: {}", topic);
|
||||||
|
log.info("[MQTT] 订阅成功: {} qos={}", topic, props.getQos()); // ← 加这行
|
||||||
|
}
|
||||||
|
|
||||||
|
return client;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发布消息
|
||||||
|
*/
|
||||||
|
public void publish(String topic, String payload) {
|
||||||
|
try {
|
||||||
|
MqttMessage message = new MqttMessage(payload.getBytes(StandardCharsets.UTF_8));
|
||||||
|
message.setQos(props.getQos());
|
||||||
|
message.setRetained(false);
|
||||||
|
client.publish(topic, message);
|
||||||
|
log.info("[MQTT] 发布消息 topic={} payload={}", topic, payload);
|
||||||
|
} catch (MqttException e) {
|
||||||
|
log.error("[MQTT] 发布失败 topic={}", topic, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void destroy() throws Exception {
|
||||||
|
if (client != null && client.isConnected()) {
|
||||||
|
client.disconnect();
|
||||||
|
client.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package org.dromara.mqtt.config.properties;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
//@Component
|
||||||
|
@ConfigurationProperties(prefix = "mqtt")
|
||||||
|
public class MqttProperties {
|
||||||
|
|
||||||
|
private String brokerUrl;
|
||||||
|
private String username;
|
||||||
|
private String password;
|
||||||
|
private String clientId;
|
||||||
|
private int qos = 1;
|
||||||
|
private int keepAlive = 60;
|
||||||
|
private int connectionTimeout = 30;
|
||||||
|
private Topics topics;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class Topics {
|
||||||
|
private List<String> subscribe;
|
||||||
|
private String publishPrefix;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
org.dromara.mqtt.MqttClientManager
|
||||||
|
org.dromara.app.mqtt.MqttMessageDispatcher
|
||||||
@@ -1,31 +1,22 @@
|
|||||||
package org.dromara.app.controller;
|
package org.dromara.app.controller;
|
||||||
|
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
||||||
import cn.hutool.core.lang.Validator;
|
import cn.hutool.core.lang.Validator;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.crypto.digest.BCrypt;
|
import cn.hutool.crypto.digest.BCrypt;
|
||||||
|
import cn.hutool.json.JSONArray;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
import jakarta.validation.constraints.NotEmpty;
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.dromara.app.domain.bo.AppDeviceBo;
|
import org.dromara.app.domain.AppDevice;
|
||||||
import org.dromara.app.domain.bo.AppScheduleBo;
|
import org.dromara.app.domain.bo.*;
|
||||||
import org.dromara.app.domain.vo.AppDeviceVo;
|
import org.dromara.app.domain.vo.*;
|
||||||
import org.dromara.app.domain.vo.AppScheduleDetailVo;
|
import org.dromara.app.service.*;
|
||||||
import org.dromara.app.domain.vo.AppScheduleVo;
|
|
||||||
import org.dromara.app.domain.vo.AppSchedulingDeviceVo;
|
|
||||||
import org.dromara.app.service.IAppDeviceService;
|
|
||||||
import org.dromara.app.service.IAppScheduleDetailService;
|
|
||||||
import org.dromara.app.service.IAppScheduleService;
|
|
||||||
import org.dromara.app.service.IAppSchedulingDeviceService;
|
|
||||||
import org.dromara.app.service.impl.AppScheduleDetailServiceImpl;
|
|
||||||
import org.dromara.app.service.impl.AppScheduleServiceImpl;
|
import org.dromara.app.service.impl.AppScheduleServiceImpl;
|
||||||
import org.dromara.common.core.domain.R;
|
import org.dromara.common.core.domain.R;
|
||||||
import org.dromara.common.core.domain.model.ForgotLoginBody;
|
|
||||||
import org.dromara.common.core.domain.model.LoginUser;
|
import org.dromara.common.core.domain.model.LoginUser;
|
||||||
import org.dromara.common.core.enums.LoginType;
|
|
||||||
import org.dromara.common.core.exception.user.UserException;
|
import org.dromara.common.core.exception.user.UserException;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.core.validate.AddGroup;
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
@@ -39,7 +30,6 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.mybatis.helper.DataPermissionHelper;
|
import org.dromara.common.mybatis.helper.DataPermissionHelper;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.common.tenant.helper.TenantHelper;
|
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.system.domain.bo.SysUserBo;
|
import org.dromara.system.domain.bo.SysUserBo;
|
||||||
import org.dromara.system.domain.vo.SysUserVo;
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
@@ -48,9 +38,9 @@ import org.dromara.system.service.ISysUserService;
|
|||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -65,6 +55,8 @@ public class AppController extends BaseController {
|
|||||||
private final AppScheduleServiceImpl appScheduleServiceimpl;
|
private final AppScheduleServiceImpl appScheduleServiceimpl;
|
||||||
private final IAppSchedulingDeviceService appSchedulingDeviceService;
|
private final IAppSchedulingDeviceService appSchedulingDeviceService;
|
||||||
private final ISysUserService userService;
|
private final ISysUserService userService;
|
||||||
|
private final IAppWateringLogService wateringLogService;
|
||||||
|
private final IAppWateringLogService appWateringLogService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*查询设备
|
*查询设备
|
||||||
@@ -73,6 +65,8 @@ public class AppController extends BaseController {
|
|||||||
@GetMapping("/deviceList")
|
@GetMapping("/deviceList")
|
||||||
public TableDataInfo<AppDeviceVo> list(AppDeviceBo bo, PageQuery pageQuery) {
|
public TableDataInfo<AppDeviceVo> list(AppDeviceBo bo, PageQuery pageQuery) {
|
||||||
bo.setUserId(LoginHelper.getUserId());
|
bo.setUserId(LoginHelper.getUserId());
|
||||||
|
pageQuery.setOrderByColumn("createTime");
|
||||||
|
pageQuery.setIsAsc("desc");
|
||||||
return appDeviceService.queryPageList(bo, pageQuery);
|
return appDeviceService.queryPageList(bo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,40 +131,175 @@ public class AppController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手动开启关闭设备
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
// @SaCheckRole("appadmin")
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping("/switchDevice")
|
||||||
|
public R<Void> switchDevice(@RequestBody String body) {
|
||||||
|
Map<String,String> map = JsonUtils.parseObject(body, Map.class);
|
||||||
|
try {
|
||||||
|
Long id = Long.valueOf(map.get("id"));
|
||||||
|
String status = map.get("workStatus");
|
||||||
|
String startTime = map.get("startTime");
|
||||||
|
int durationMin = Integer.valueOf(map.get("durationMin"));
|
||||||
|
//更新设备工作状态
|
||||||
|
AppDeviceBo appDeviceBo = new AppDeviceBo();
|
||||||
|
appDeviceBo.setId(id);
|
||||||
|
appDeviceBo.setWorkStatus(status);
|
||||||
|
Boolean flag = appDeviceService.updateByBo(appDeviceBo);
|
||||||
|
if (flag){
|
||||||
|
//todo 给设备发送开始浇水信息
|
||||||
|
|
||||||
|
// 记录信息到历史表
|
||||||
|
AppWateringLogBo appWateringLog = new AppWateringLogBo();
|
||||||
|
appWateringLog.setDeviceId(id);
|
||||||
|
appWateringLog.setUserId(LoginHelper.getUserId());
|
||||||
|
appWateringLog.setDurationMin(durationMin+"");
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
if (StringUtils.isNotEmpty(startTime)){
|
||||||
|
Date date = sdf.parse(startTime);
|
||||||
|
appWateringLog.setStartTime(date);
|
||||||
|
long time = date.getTime()+durationMin*60000L;
|
||||||
|
Date endTime = new Date(time);
|
||||||
|
appWateringLog.setEndTime(endTime);
|
||||||
|
}
|
||||||
|
appWateringLog.setTriggerType("1");
|
||||||
|
appWateringLog.setCreateTime(new Date());
|
||||||
|
appWateringLog.setScheduleId(1L);
|
||||||
|
wateringLogService.insertByBo(appWateringLog);
|
||||||
|
}
|
||||||
|
|
||||||
|
return toAjax(flag);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 排程关联设备查询
|
* 排程关联设备查询
|
||||||
* @param
|
* @param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/scheduleDeviceList")
|
@GetMapping("/scheduleDeviceList/{scheduleId}")
|
||||||
public List<AppDeviceVo> scheduleDeviceList(AppDeviceBo appDeviceBo, AppScheduleBo appScheduleBo) {
|
public R<Map<String,Object>> scheduleDeviceList( @PathVariable Long scheduleId) {
|
||||||
|
|
||||||
|
Map retMap = new HashMap();
|
||||||
|
//所有设备列表
|
||||||
|
AppDeviceBo appDeviceBo = new AppDeviceBo();
|
||||||
|
appDeviceBo.setUserId(LoginHelper.getUserId());
|
||||||
List<AppDeviceVo> appDeviceVos = appDeviceService.queryList(appDeviceBo);
|
List<AppDeviceVo> appDeviceVos = appDeviceService.queryList(appDeviceBo);
|
||||||
|
|
||||||
List<AppDeviceVo> AppDeviceVoList = new ArrayList();
|
List<AppDeviceVo> appDeviceVoList = new ArrayList();
|
||||||
|
AppSchedulingDeviceBo schedulingDeviceBo = new AppSchedulingDeviceBo();
|
||||||
|
schedulingDeviceBo.setScheduleId(scheduleId);
|
||||||
|
|
||||||
|
|
||||||
for (AppDeviceVo appDeviceVo:appDeviceVos){
|
for (AppDeviceVo appDeviceVo:appDeviceVos){
|
||||||
//查询设备日程冲突
|
List<AppSchedulingDeviceVo> appSchedulingDeviceVos = appSchedulingDeviceService.queryByDeviveId(appDeviceVo.getId());
|
||||||
List list = appScheduleServiceimpl.checkConflict(appDeviceVo.getId(), appScheduleBo);
|
if(appSchedulingDeviceVos.size() == 0){
|
||||||
if (list.size()==0){
|
appDeviceVoList.add(appDeviceVo);
|
||||||
AppDeviceVoList.add(appDeviceVo);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return AppDeviceVoList;
|
retMap.put("deviceList", appDeviceVoList);
|
||||||
|
// if (appDeviceVoList.size()==0){
|
||||||
|
// retMap.put("deviceList", appDeviceVos);
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return R.ok(retMap);
|
||||||
|
|
||||||
|
/** //排程信息
|
||||||
|
AppScheduleVo appScheduleVo = appScheduleService.queryById(scheduleId);
|
||||||
|
if (ObjectUtil.isNotNull(appScheduleVo)&&"1".equals(appScheduleVo.getStatus())){
|
||||||
|
for (AppDeviceVo appDeviceVo:appDeviceVos){
|
||||||
|
//查询设备日程冲突
|
||||||
|
List list = appScheduleServiceimpl.checkConflict(appDeviceVo.getId(), appScheduleVo);
|
||||||
|
if (list.size()==0){
|
||||||
|
AppDeviceVoList.add(appDeviceVo);
|
||||||
|
}
|
||||||
|
// retMap.put("conflict", list);
|
||||||
|
|
||||||
|
}
|
||||||
|
retMap.put("devicelist", AppDeviceVoList);
|
||||||
|
|
||||||
|
}else {
|
||||||
|
retMap.put("devicelist", appDeviceVos);
|
||||||
|
// retMap.put("conflict", new ArrayList<>());
|
||||||
|
return R.ok(retMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
return R.ok(retMap); **/
|
||||||
|
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
*绑定排程跟设备
|
||||||
|
*/
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping("/addScheduleDevice")
|
||||||
|
public R<Void> addScheduleDevice( @RequestBody String body) {
|
||||||
|
try {
|
||||||
|
Map<String, Object> map = JsonUtils.parseObject(body, Map.class);
|
||||||
|
Long scheduleId = Long.valueOf(map.get("scheduleId").toString());
|
||||||
|
List<String> deviceIds= (List<String>) map.get("deviceIds");
|
||||||
|
for (String deviceId:deviceIds){
|
||||||
|
AppSchedulingDeviceBo schedulingDeviceBo = new AppSchedulingDeviceBo();
|
||||||
|
schedulingDeviceBo.setDeviceId(Long.valueOf(deviceId));
|
||||||
|
schedulingDeviceBo.setScheduleId(scheduleId);
|
||||||
|
appSchedulingDeviceService.insertByBo(schedulingDeviceBo);
|
||||||
|
}
|
||||||
|
return R.ok();
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除排程与设备绑定
|
||||||
|
* @param scheduleId,deviceId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Log(title = "排程与设备关联", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/deleteScheduleDevice")
|
||||||
|
public R<Void> deleteScheduleDevice(@NotEmpty(message = "主键不能为空")
|
||||||
|
@RequestParam String scheduleId, @RequestParam String deviceId) {
|
||||||
|
return toAjax(appSchedulingDeviceService.deleteWithValidByschedulingIds2Ids(Long.valueOf(scheduleId),Long.valueOf(deviceId)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询排程列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/schedulelist")
|
||||||
|
public TableDataInfo<AppScheduleVo> schedulelist(AppScheduleBo bo, PageQuery pageQuery) {
|
||||||
|
bo.setUserId(LoginHelper.getUserId());
|
||||||
|
pageQuery.setOrderByColumn("createTime");
|
||||||
|
pageQuery.setIsAsc("desc");
|
||||||
|
return appScheduleService.queryPageList(bo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增排程
|
* 新增排程
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("app:schedule:add")
|
|
||||||
@Log(title = "日程排列", businessType = BusinessType.INSERT)
|
@Log(title = "日程排列", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping("/addschedule")
|
@PostMapping("/addschedule")
|
||||||
public R<Void> addSchedule(@Validated(AddGroup.class) @RequestBody AppScheduleBo bo) {
|
public R<AppScheduleVo> addSchedule(@Validated(AddGroup.class) @RequestBody AppScheduleBo bo) {
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return toAjax(appScheduleService.insertByBo(bo));
|
bo.setCreateTime(new Date());
|
||||||
|
AppScheduleVo appScheduleVo = appScheduleService.insertByBo(bo);
|
||||||
|
if (ObjectUtil.isNotNull(appScheduleVo)){
|
||||||
|
return R.ok(appScheduleVo);
|
||||||
|
}
|
||||||
|
return R.fail();
|
||||||
|
// return toAjax(appScheduleService.insertByBo(bo));
|
||||||
} catch (RuntimeException e) {
|
} catch (RuntimeException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@@ -186,27 +315,71 @@ public class AppController extends BaseController {
|
|||||||
public R<AppScheduleVo> getScheduleInfo(@NotNull(message = "主键不能为空")
|
public R<AppScheduleVo> getScheduleInfo(@NotNull(message = "主键不能为空")
|
||||||
@PathVariable Long id) {
|
@PathVariable Long id) {
|
||||||
AppScheduleVo appScheduleVo = appScheduleService.queryById(id);
|
AppScheduleVo appScheduleVo = appScheduleService.queryById(id);
|
||||||
|
if (ObjectUtil.isNotNull(appScheduleVo)){
|
||||||
|
List<AppScheduleDetailVo> list = appScheduleDetailService.queryByScheduleIdByStatus(appScheduleVo.getId());
|
||||||
|
|
||||||
List<AppScheduleDetailVo> list = appScheduleDetailService.queryByScheduleId(appScheduleVo.getId());
|
AppSchedulingDeviceBo appSchedulingDeviceBo = new AppSchedulingDeviceBo();
|
||||||
|
appSchedulingDeviceBo.setScheduleId(appScheduleVo.getId());
|
||||||
|
List<AppSchedulingDeviceVo> appSchedulingDeviceVos = appSchedulingDeviceService.queryList(appSchedulingDeviceBo);
|
||||||
|
List deviceList = new ArrayList();
|
||||||
|
for (AppSchedulingDeviceVo appSchedulingDeviceVo:appSchedulingDeviceVos){
|
||||||
|
AppDeviceVo appDeviceVo = appDeviceService.queryById(appSchedulingDeviceVo.getDeviceId());
|
||||||
|
deviceList.add(appDeviceVo);
|
||||||
|
}
|
||||||
|
List detailList = new ArrayList();
|
||||||
|
|
||||||
appScheduleVo.setDetails(list);
|
for (AppScheduleDetailVo detail:list){
|
||||||
|
List timeSlots = new ArrayList();
|
||||||
|
JSONArray mapArray = JSONUtil.parseArray(detail.getTimeData());
|
||||||
|
for (Object timeSlot:mapArray){
|
||||||
|
timeSlots.add(timeSlot);
|
||||||
|
}
|
||||||
|
|
||||||
return R.ok(appScheduleVo);
|
Map map = new HashMap();
|
||||||
|
map.put("id",detail.getId() );
|
||||||
|
map.put("weekday",detail.getWeekday() );
|
||||||
|
map.put("timeData",timeSlots );
|
||||||
|
map.put("triggerType",detail.getTriggerType() );
|
||||||
|
map.put("status",detail.getStatus() );
|
||||||
|
detailList.add(map);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
appScheduleVo.setDetails(detailList);
|
||||||
|
appScheduleVo.setDeviceIds(deviceList);
|
||||||
|
return R.ok(appScheduleVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return R.fail(appScheduleVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改排程状态
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PutMapping("/editScheduleStatus")
|
||||||
|
public R<Void> editScheduleStatus(@NotNull(message = "主键不能为空")
|
||||||
|
@RequestBody AppScheduleBo bo) {
|
||||||
|
|
||||||
|
return toAjax(appScheduleService.updateStatusByBo(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改日程排列
|
* 修改日程排列
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("app:schedule:edit")
|
|
||||||
@Log(title = "日程排列", businessType = BusinessType.UPDATE)
|
@Log(title = "日程排列", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping("/updataschedule")
|
@PutMapping("/updataschedule")
|
||||||
public R<Void> editSchedule(@Validated(EditGroup.class) @RequestBody AppScheduleBo bo) {
|
public R<Object> editSchedule(@Validated(EditGroup.class) @RequestBody AppScheduleBo bo) {
|
||||||
List list = appScheduleService.updateByBo(bo);
|
Map<String, Object> map = appScheduleService.updateByBo(bo);
|
||||||
if (list.size()==0){
|
if (Boolean.valueOf(map.get("flag").toString())){
|
||||||
return R.ok();
|
return R.ok(map.get("appSchedule"));
|
||||||
}else {
|
}else {
|
||||||
return R.fail(list.toString());
|
return R.fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -217,7 +390,6 @@ public class AppController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param ids 主键串
|
* @param ids 主键串
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("app:schedule:remove")
|
|
||||||
@Log(title = "日程排列", businessType = BusinessType.DELETE)
|
@Log(title = "日程排列", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/deleteschedule/{ids}")
|
@DeleteMapping("/deleteschedule/{ids}")
|
||||||
public R<Void> removeSchedule(@NotEmpty(message = "主键不能为空")
|
public R<Void> removeSchedule(@NotEmpty(message = "主键不能为空")
|
||||||
@@ -225,6 +397,85 @@ public class AppController extends BaseController {
|
|||||||
return toAjax(appScheduleService.deleteWithValidByIds(List.of(ids), true));
|
return toAjax(appScheduleService.deleteWithValidByIds(List.of(ids), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 历史
|
||||||
|
* 查询浇水记录列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/waterLogList")
|
||||||
|
public TableDataInfo<AppWateringLogVo> list(AppWateringLogBo bo, PageQuery pageQuery) {
|
||||||
|
bo.setUserId(LoginHelper.getUserId());
|
||||||
|
pageQuery.setOrderByColumn("createTime");
|
||||||
|
pageQuery.setIsAsc("desc");
|
||||||
|
TableDataInfo<AppWateringLogVo> appWateringLogVoTableDataInfo = appWateringLogService.queryPageList(bo, pageQuery);
|
||||||
|
AppDeviceBo appDeviceBo = new AppDeviceBo();
|
||||||
|
appDeviceBo.setUserId(LoginHelper.getUserId());
|
||||||
|
List<AppDeviceVo> appDeviceVos = appDeviceService.queryList(appDeviceBo);
|
||||||
|
List l = new ArrayList<>();
|
||||||
|
for (AppWateringLogVo vo : appWateringLogVoTableDataInfo.getRows()){
|
||||||
|
for(AppDeviceVo appDeviceVo:appDeviceVos){
|
||||||
|
if (appDeviceVo.getId().equals(vo.getDeviceId())){
|
||||||
|
vo.setDeviceName(appDeviceVo.getDeviceName());
|
||||||
|
vo.setDeviceNo(appDeviceVo.getDeviceNo());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// AppDeviceVo appDeviceVo = appDeviceService.queryById(vo.getDeviceId());
|
||||||
|
vo.setTriggerType(vo.getTriggerType().equals("0")?"排程":"手动");
|
||||||
|
l.add(vo);
|
||||||
|
}
|
||||||
|
appWateringLogVoTableDataInfo.setRows(l);
|
||||||
|
return appWateringLogVoTableDataInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除浇水记录
|
||||||
|
*
|
||||||
|
* @param ids 主键串
|
||||||
|
*/
|
||||||
|
@Log(title = "浇水记录", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/waterLog/{ids}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(appWateringLogService.deleteWithValidByIds(List.of(ids), true));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据统计
|
||||||
|
*/
|
||||||
|
@GetMapping("/dataStatistics")
|
||||||
|
public R<Map> dataStatistics() {
|
||||||
|
Map map = new HashMap();
|
||||||
|
try {
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
//总浇水次数
|
||||||
|
Long count = appWateringLogService.queryCount(userId);
|
||||||
|
//本月浇水次数
|
||||||
|
Long monCount = appWateringLogService.queryByMonCount(userId);
|
||||||
|
//本周浇水次数
|
||||||
|
Long weekCount = appWateringLogService.queryByWeekCount(userId);
|
||||||
|
//排程浇水次数
|
||||||
|
Long schedule = appWateringLogService.queryByTriggerTypeCount(userId, "0");
|
||||||
|
//手动浇水次数
|
||||||
|
Long manualNum = appWateringLogService.queryByTriggerTypeCount(userId, "1");
|
||||||
|
//总浇水时间
|
||||||
|
Long allTime = appWateringLogService.queryByTotalWateringTime(userId);
|
||||||
|
//平均浇水时间
|
||||||
|
Long averageTime = allTime/count;
|
||||||
|
|
||||||
|
map.put("count",count);
|
||||||
|
map.put("monCount",monCount);
|
||||||
|
map.put("weekCount",weekCount);
|
||||||
|
map.put("schedule",schedule);
|
||||||
|
map.put("manualNum",manualNum);
|
||||||
|
map.put("allTime",allTime);
|
||||||
|
map.put("averageTime",averageTime);
|
||||||
|
return R.ok(map);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户信息
|
* 获取用户信息
|
||||||
@@ -290,12 +541,12 @@ public class AppController extends BaseController {
|
|||||||
|
|
||||||
if(Validator.isEmail(bo.getUserName())){
|
if(Validator.isEmail(bo.getUserName())){
|
||||||
boolean checkPhoneFlag = userService.checkEmailUnique(bo);
|
boolean checkPhoneFlag = userService.checkEmailUnique(bo);
|
||||||
if (checkPhoneFlag){
|
if (!checkPhoneFlag){
|
||||||
throw new UserException("user.email.not.username");
|
throw new UserException("user.email.not.username");
|
||||||
}
|
}
|
||||||
}else if (Validator.isMobile(bo.getUserName())){
|
}else if (Validator.isMobile(bo.getUserName())){
|
||||||
boolean checkPhoneFlag = userService.checkPhoneUnique(bo);
|
boolean checkPhoneFlag = userService.checkPhoneUnique(bo);
|
||||||
if (checkPhoneFlag){
|
if (!checkPhoneFlag){
|
||||||
throw new UserException("user.mobile.phone.number.not.username");
|
throw new UserException("user.mobile.phone.number.not.username");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,6 +55,11 @@ public class AppDevice extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工作状态 1-工作中 0-休息
|
||||||
|
*/
|
||||||
|
private String workStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电量
|
* 电量
|
||||||
*/
|
*/
|
||||||
@@ -98,8 +103,8 @@ public class AppDevice extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 删除标志(0代表存在 1代表删除)
|
* 删除标志(0代表存在 1代表删除)
|
||||||
*/
|
*/
|
||||||
@TableLogic
|
//@TableLogic
|
||||||
private String delFlag;
|
//private String delFlag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 到期时间
|
* 到期时间
|
||||||
|
|||||||
@@ -47,8 +47,8 @@ public class AppSchedule extends BaseEntity {
|
|||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
|
|
||||||
private Date createdTime;
|
private Date createTime;
|
||||||
|
|
||||||
private List<AppScheduleDetail> details;
|
//private List<AppScheduleDetail> details;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
package org.dromara.app.domain;
|
package org.dromara.app.domain;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSON;
|
||||||
|
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.LocalTime;
|
|
||||||
import java.util.Date;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 排程详情对象 app_schedule_detail
|
* 排程详情对象 app_schedule_detail
|
||||||
@@ -20,7 +21,7 @@ import java.io.Serial;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@TableName("app_schedule_detail")
|
@TableName(value ="app_schedule_detail")
|
||||||
public class AppScheduleDetail extends BaseEntity {
|
public class AppScheduleDetail extends BaseEntity {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
@@ -45,12 +46,16 @@ public class AppScheduleDetail extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 开始时间
|
* 开始时间
|
||||||
*/
|
*/
|
||||||
private LocalTime startTime;
|
|
||||||
|
private String timeData;
|
||||||
|
|
||||||
|
private String endTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 持续时间(分钟)
|
* 持续时间(分钟)
|
||||||
*/
|
*/
|
||||||
private Integer durationMin;
|
@TableField(value = "duration_min", typeHandler = JacksonTypeHandler.class)
|
||||||
|
private String durationMin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 浇水区域
|
* 浇水区域
|
||||||
@@ -62,5 +67,7 @@ public class AppScheduleDetail extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String triggerType;
|
private String triggerType;
|
||||||
|
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ public class AppSchedulingDevice extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 排程id
|
* 排程id
|
||||||
*/
|
*/
|
||||||
private Long schedulingId;
|
private Long scheduleId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备id
|
* 设备id
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ public class AppWateringLog extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private Long deviceId;
|
private Long deviceId;
|
||||||
|
|
||||||
|
private String deviceNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 关联排程
|
* 关联排程
|
||||||
*/
|
*/
|
||||||
@@ -72,7 +74,7 @@ public class AppWateringLog extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
private Date createdTime;
|
private Date createTime;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,10 @@ public class AppDeviceBo extends BaseEntity {
|
|||||||
* 状态 1-工作中 0-离线 2-待机 3-故障
|
* 状态 1-工作中 0-离线 2-待机 3-故障
|
||||||
*/
|
*/
|
||||||
private String status;
|
private String status;
|
||||||
|
/**
|
||||||
|
* 工作状态 1-工作中 0-休息
|
||||||
|
*/
|
||||||
|
private String workStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电量
|
* 电量
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.dromara.app.domain.bo;
|
package org.dromara.app.domain.bo;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSON;
|
||||||
import org.dromara.app.domain.AppSchedule;
|
import org.dromara.app.domain.AppSchedule;
|
||||||
import org.dromara.app.domain.AppScheduleDetail;
|
import org.dromara.app.domain.AppScheduleDetail;
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
@@ -13,6 +14,7 @@ import jakarta.validation.constraints.*;
|
|||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
@@ -56,23 +58,30 @@ public class AppScheduleBo extends BaseEntity {
|
|||||||
|
|
||||||
// 内部类
|
// 内部类
|
||||||
@Data
|
@Data
|
||||||
public static class AppScheduleDetail extends org.dromara.app.domain.AppScheduleDetail {
|
public static class AppScheduleDetail {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
@NotNull(message = "星期不能为空")
|
@NotNull(message = "星期不能为空")
|
||||||
@Min(1) @Max(7)
|
@Min(1) @Max(7)
|
||||||
private Integer weekday;
|
private Integer weekday;
|
||||||
|
|
||||||
@NotNull(message = "开始时间不能为空")
|
@NotNull(message = "开始时间不能为空")
|
||||||
private LocalTime startTime;
|
private List<TimeSlot> timeData;
|
||||||
|
|
||||||
@NotNull(message = "持续时间不能为空")
|
|
||||||
//@Min(1) @Max(120)
|
|
||||||
private Integer durationMin;
|
|
||||||
|
|
||||||
//@NotNull(message = "浇水区域不能为空")
|
//@NotNull(message = "浇水区域不能为空")
|
||||||
private Integer zones; // 位掩码
|
private Integer zones; // 位掩码
|
||||||
|
|
||||||
private String triggerType = "0";
|
private String triggerType = "0";
|
||||||
|
|
||||||
|
private String status = "0";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class TimeSlot {
|
||||||
|
private String startTime;
|
||||||
|
private Integer durationMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.dromara.app.domain.bo;
|
package org.dromara.app.domain.bo;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSON;
|
||||||
import org.dromara.app.domain.AppScheduleDetail;
|
import org.dromara.app.domain.AppScheduleDetail;
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
import org.dromara.common.core.validate.AddGroup;
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
@@ -11,6 +12,9 @@ import jakarta.validation.constraints.*;
|
|||||||
|
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -43,7 +47,9 @@ public class AppScheduleDetailBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 开始时间
|
* 开始时间
|
||||||
*/
|
*/
|
||||||
private LocalTime startTime;
|
private String timeData;
|
||||||
|
|
||||||
|
private String endTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 持续时间(分钟)
|
* 持续时间(分钟)
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ public class AppSchedulingDeviceBo extends BaseEntity {
|
|||||||
* 排程id
|
* 排程id
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "排程id不能为空", groups = { AddGroup.class, EditGroup.class })
|
@NotNull(message = "排程id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
private Long schedulingId;
|
private Long scheduleId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备id
|
* 设备id
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ public class AppWateringLogBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private Long deviceId;
|
private Long deviceId;
|
||||||
|
|
||||||
|
private String deviceNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 关联排程
|
* 关联排程
|
||||||
*/
|
*/
|
||||||
@@ -71,7 +73,7 @@ public class AppWateringLogBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
private Date createdTime;
|
private Date createTime;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,10 @@ public class AppDeviceVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "状态 1-工作中 0-离线 2-待机 3-故障")
|
@ExcelProperty(value = "状态 1-工作中 0-离线 2-待机 3-故障")
|
||||||
private String status;
|
private String status;
|
||||||
|
/**
|
||||||
|
* 工作状态 1-工作中 0-休息
|
||||||
|
*/
|
||||||
|
private String workStatus;
|
||||||
/**
|
/**
|
||||||
* 电量
|
* 电量
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package org.dromara.app.domain.vo;
|
|||||||
|
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSON;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import org.dromara.app.domain.AppScheduleDetail;
|
import org.dromara.app.domain.AppScheduleDetail;
|
||||||
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
|
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
@@ -14,7 +16,8 @@ import lombok.Data;
|
|||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,13 +56,14 @@ public class AppScheduleDetailVo implements Serializable {
|
|||||||
* 开始时间
|
* 开始时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "开始时间")
|
@ExcelProperty(value = "开始时间")
|
||||||
private LocalTime startTime;
|
private String timeData;
|
||||||
|
|
||||||
|
private String endTime;
|
||||||
/**
|
/**
|
||||||
* 持续时间(分钟)
|
* 持续时间(分钟)
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "持续时间(分钟)")
|
@ExcelProperty(value = "持续时间(分钟)")
|
||||||
private Integer durationMin;
|
private String durationMin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 浇水区域
|
* 浇水区域
|
||||||
@@ -73,5 +77,12 @@ public class AppScheduleDetailVo implements Serializable {
|
|||||||
@ExcelProperty(value = "方式 0-排程 1-手动 ")
|
@ExcelProperty(value = "方式 0-排程 1-手动 ")
|
||||||
private String triggerType;
|
private String triggerType;
|
||||||
|
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class TimeSlot {
|
||||||
|
private String startTime;
|
||||||
|
private Integer durationMin;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ public class AppScheduleVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 设备ids
|
* 设备ids
|
||||||
*/
|
*/
|
||||||
private List<Long> deviceIds;
|
private List deviceIds;
|
||||||
/**
|
/**
|
||||||
* 状态 0-关闭 1 开启
|
* 状态 0-关闭 1 开启
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.dromara.app.domain.vo;
|
package org.dromara.app.domain.vo;
|
||||||
|
|
||||||
|
import org.dromara.app.domain.AppSchedule;
|
||||||
import org.dromara.app.domain.AppSchedulingDevice;
|
import org.dromara.app.domain.AppSchedulingDevice;
|
||||||
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
|
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import cn.idev.excel.annotation.ExcelProperty;
|
import cn.idev.excel.annotation.ExcelProperty;
|
||||||
@@ -32,7 +33,7 @@ public class AppSchedulingDeviceVo implements Serializable {
|
|||||||
* 排程id
|
* 排程id
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "排程id")
|
@ExcelProperty(value = "排程id")
|
||||||
private Long schedulingId;
|
private Long scheduleId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备id
|
* 设备id
|
||||||
@@ -40,5 +41,6 @@ public class AppSchedulingDeviceVo implements Serializable {
|
|||||||
@ExcelProperty(value = "设备id")
|
@ExcelProperty(value = "设备id")
|
||||||
private Long deviceId;
|
private Long deviceId;
|
||||||
|
|
||||||
|
private AppScheduleVo schedule;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ public class AppWateringLogVo implements Serializable {
|
|||||||
@ExcelProperty(value = "设备ID")
|
@ExcelProperty(value = "设备ID")
|
||||||
private Long deviceId;
|
private Long deviceId;
|
||||||
|
|
||||||
|
private String deviceNo;
|
||||||
/**
|
/**
|
||||||
* 关联排程
|
* 关联排程
|
||||||
*/
|
*/
|
||||||
@@ -83,12 +84,13 @@ public class AppWateringLogVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "0-排程 1-手动")
|
@ExcelProperty(value = "0-排程 1-手动")
|
||||||
private String triggerType;
|
private String triggerType;
|
||||||
|
private String deviceName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "创建时间")
|
@ExcelProperty(value = "创建时间")
|
||||||
private Date createdTime;
|
private Date createTime;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package org.dromara.app.handler;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class DeviceDataHandler {
|
||||||
|
|
||||||
|
|
||||||
|
public void handle(String deviceId, String payload) {
|
||||||
|
try {
|
||||||
|
// DeviceDataDTO dto = JsonUtils.parseObject(payload, DeviceDataDTO.class);
|
||||||
|
// dto.setDeviceId(deviceId);
|
||||||
|
// dto.setReportTime(LocalDateTime.now());
|
||||||
|
// deviceDataService.saveDeviceData(dto);
|
||||||
|
log.info("[MQTT] 设备数据入库 deviceId={}", deviceId);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("[MQTT] 设备数据解析失败 deviceId={} payload={}", deviceId, payload, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package org.dromara.app.handler;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.json.utils.JsonUtils;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
//设备在线状态
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
|
||||||
|
public class DeviceStatusHandler {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void handle(String deviceNo, String payload) {
|
||||||
|
try {
|
||||||
|
Map<String,Object> dto = JsonUtils.parseObject(payload, Map.class);
|
||||||
|
// 更新设备在线状态
|
||||||
|
|
||||||
|
// log.info("[MQTT] 设备状态更新 deviceId={} status={}", deviceId, dto.getStatus());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("[MQTT] 设备状态处理失败 deviceId={}", deviceNo, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package org.dromara.app.handler;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.json.utils.JsonUtils;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
//设备推送异常告警入库
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class ErromesHandler {
|
||||||
|
|
||||||
|
|
||||||
|
public void handle(String deviceNo, String payload) {
|
||||||
|
try {
|
||||||
|
Map<String,Object> dto = JsonUtils.parseObject(payload, Map.class);
|
||||||
|
|
||||||
|
log.info("[MQTT] 设备状态发送异常 deviceNo={}", deviceNo);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("[MQTT] 设备状态处理失败 deviceNo={}", deviceNo, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package org.dromara.app.mapper;
|
package org.dromara.app.mapper;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
import org.dromara.app.domain.AppWateringLog;
|
import org.dromara.app.domain.AppWateringLog;
|
||||||
import org.dromara.app.domain.vo.AppWateringLogVo;
|
import org.dromara.app.domain.vo.AppWateringLogVo;
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
@@ -12,4 +14,26 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
|||||||
*/
|
*/
|
||||||
public interface AppWateringLogMapper extends BaseMapperPlus<AppWateringLog, AppWateringLogVo> {
|
public interface AppWateringLogMapper extends BaseMapperPlus<AppWateringLog, AppWateringLogVo> {
|
||||||
|
|
||||||
|
@Select("SELECT count(id) FROM app_watering_log\n" +
|
||||||
|
"WHERE user_id=${userId} AND YEAR(create_time) = YEAR(CURDATE()) AND MONTH(create_time) = MONTH(CURDATE());")
|
||||||
|
Long selectByMonCout(@Param("userId") Long userId);
|
||||||
|
|
||||||
|
|
||||||
|
@Select("SELECT COUNT(id) \n" +
|
||||||
|
"FROM app_watering_log \n" +
|
||||||
|
"WHERE user_id=${userId} AND WEEK(create_time) = WEEK(CURDATE());")
|
||||||
|
Long selectByWeekCount(@Param("userId") Long userId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Select("SELECT COUNT(id) \n" +
|
||||||
|
"FROM app_watering_log \n" +
|
||||||
|
"WHERE user_id=${userId} AND trigger_type =${triggerType}")
|
||||||
|
Long selectByTriggerTypeCount(Long userId, String triggerType);
|
||||||
|
|
||||||
|
@Select("SELECT SUM(duration_min)\n" +
|
||||||
|
"FROM app_watering_log \n" +
|
||||||
|
"WHERE user_id=${userId}")
|
||||||
|
Long selectByTotalWateringTime(Long userId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
package org.dromara.app.mqtt;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.app.handler.DeviceDataHandler;
|
||||||
|
import org.dromara.app.handler.DeviceStatusHandler;
|
||||||
|
import org.dromara.app.handler.ErromesHandler;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class MqttMessageDispatcher {
|
||||||
|
private final DeviceDataHandler dataHandler;
|
||||||
|
private final DeviceStatusHandler statusHandler;
|
||||||
|
private final ErromesHandler erroHandler;
|
||||||
|
|
||||||
|
// 路由规则:匹配 topic 分发到对应 Handler
|
||||||
|
private static final String DATA_PATTERN = "/water/([^/]+)/data";
|
||||||
|
private static final String STATUS_PATTERN = "/water/([^/]+)/status";
|
||||||
|
private static final String ERROMES_PATTERN = "/water/([^/]+)/erromes";
|
||||||
|
|
||||||
|
public void dispatch(String topic, String payload) {
|
||||||
|
log.debug("[MQTT] 收到消息 topic={} 内容: {}", topic,payload);
|
||||||
|
if (topic.matches(DATA_PATTERN)) {
|
||||||
|
String deviceNo = extract(topic, DATA_PATTERN);
|
||||||
|
dataHandler.handle(deviceNo, payload);
|
||||||
|
} else if (topic.matches(STATUS_PATTERN)) {
|
||||||
|
String deviceNo = extract(topic, STATUS_PATTERN);
|
||||||
|
statusHandler.handle(deviceNo, payload);
|
||||||
|
}else if (topic.matches(ERROMES_PATTERN)) {
|
||||||
|
String deviceNo = extract(topic, STATUS_PATTERN);
|
||||||
|
erroHandler.handle(deviceNo, payload);
|
||||||
|
} else {
|
||||||
|
log.warn("[MQTT] 未知 topic: {} 内容: {}", topic,payload);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String extract(String topic, String pattern) {
|
||||||
|
return topic.replaceAll(pattern, "$1");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -66,5 +66,5 @@ public interface IAppScheduleDetailService {
|
|||||||
*/
|
*/
|
||||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
List<AppScheduleDetailVo> queryByScheduleId(Long id);
|
List<AppScheduleDetailVo> queryByScheduleIdByStatus(Long id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
package org.dromara.app.service;
|
package org.dromara.app.service;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import org.dromara.app.domain.vo.AppDeviceVo;
|
||||||
import org.dromara.app.domain.vo.AppScheduleVo;
|
import org.dromara.app.domain.vo.AppScheduleVo;
|
||||||
import org.dromara.app.domain.bo.AppScheduleBo;
|
import org.dromara.app.domain.bo.AppScheduleBo;
|
||||||
|
import org.dromara.app.domain.vo.AppSchedulingDeviceVo;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 日程排列Service接口
|
* 日程排列Service接口
|
||||||
@@ -47,7 +51,7 @@ public interface IAppScheduleService {
|
|||||||
* @param bo 日程排列
|
* @param bo 日程排列
|
||||||
* @return 是否新增成功
|
* @return 是否新增成功
|
||||||
*/
|
*/
|
||||||
Boolean insertByBo(AppScheduleBo bo);
|
AppScheduleVo insertByBo(AppScheduleBo bo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改日程排列
|
* 修改日程排列
|
||||||
@@ -55,7 +59,7 @@ public interface IAppScheduleService {
|
|||||||
* @param bo 日程排列
|
* @param bo 日程排列
|
||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
List updateByBo(AppScheduleBo bo);
|
Map<String,Object> updateByBo(AppScheduleBo bo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验并批量删除日程排列信息
|
* 校验并批量删除日程排列信息
|
||||||
@@ -65,4 +69,6 @@ public interface IAppScheduleService {
|
|||||||
* @return 是否删除成功
|
* @return 是否删除成功
|
||||||
*/
|
*/
|
||||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
|
Boolean updateStatusByBo(@NotNull(message = "主键不能为空") AppScheduleBo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.dromara.app.service;
|
package org.dromara.app.service;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
import org.dromara.app.domain.vo.AppSchedulingDeviceVo;
|
import org.dromara.app.domain.vo.AppSchedulingDeviceVo;
|
||||||
import org.dromara.app.domain.bo.AppSchedulingDeviceBo;
|
import org.dromara.app.domain.bo.AppSchedulingDeviceBo;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
@@ -65,4 +66,17 @@ public interface IAppSchedulingDeviceService {
|
|||||||
* @return 是否删除成功
|
* @return 是否删除成功
|
||||||
*/
|
*/
|
||||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查找某一设备的所有日程
|
||||||
|
* @param deviceId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<AppSchedulingDeviceVo> findByDeviceId(Long deviceId);
|
||||||
|
|
||||||
|
Boolean deleteWithValidByschedulingIds2Ids(@NotEmpty(message = "主键不能为空") Long schedulingId, Long deviceId);
|
||||||
|
|
||||||
|
AppSchedulingDeviceVo queryById2DeviveId(Long scheduleId, Long id);
|
||||||
|
|
||||||
|
List<AppSchedulingDeviceVo> queryByDeviveId(Long id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,4 +65,16 @@ public interface IAppWateringLogService {
|
|||||||
* @return 是否删除成功
|
* @return 是否删除成功
|
||||||
*/
|
*/
|
||||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
|
Long queryCount(Long userId);
|
||||||
|
|
||||||
|
Long queryByMonCount(Long userId);
|
||||||
|
|
||||||
|
Long queryByWeekCount(Long userId);
|
||||||
|
|
||||||
|
Long queryByTriggerTypeCount(Long userId, String triggerType);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Long queryByTotalWateringTime(Long userId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
package org.dromara.app.service.impl;
|
package org.dromara.app.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import org.dromara.app.domain.AppSchedulingDevice;
|
||||||
|
import org.dromara.app.mapper.AppSchedulingDeviceMapper;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.mybatis.annotation.DataColumn;
|
import org.dromara.common.mybatis.annotation.DataColumn;
|
||||||
@@ -11,12 +14,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.dromara.app.domain.bo.AppDeviceBo;
|
import org.dromara.app.domain.bo.AppDeviceBo;
|
||||||
import org.dromara.app.domain.vo.AppDeviceVo;
|
import org.dromara.app.domain.vo.AppDeviceVo;
|
||||||
import org.dromara.app.domain.AppDevice;
|
import org.dromara.app.domain.AppDevice;
|
||||||
import org.dromara.app.mapper.AppDeviceMapper;
|
import org.dromara.app.mapper.AppDeviceMapper;
|
||||||
import org.dromara.app.service.IAppDeviceService;
|
import org.dromara.app.service.IAppDeviceService;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -35,6 +40,7 @@ Service业务层处理
|
|||||||
public class AppDeviceServiceImpl implements IAppDeviceService {
|
public class AppDeviceServiceImpl implements IAppDeviceService {
|
||||||
|
|
||||||
private final AppDeviceMapper baseMapper;
|
private final AppDeviceMapper baseMapper;
|
||||||
|
private final AppSchedulingDeviceMapper schedulingDeviceMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询设备信息
|
* 查询设备信息
|
||||||
@@ -150,10 +156,18 @@ public class AppDeviceServiceImpl implements IAppDeviceService {
|
|||||||
* @return 是否删除成功
|
* @return 是否删除成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
if(isValid){
|
if(isValid){
|
||||||
//TODO 做一些业务上的校验,判断是否需要校验
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
}
|
}
|
||||||
return baseMapper.deleteByIds(ids) > 0;
|
boolean flag = baseMapper.deleteByIds(ids) > 0;
|
||||||
|
if (flag){
|
||||||
|
for (Long id :ids){
|
||||||
|
schedulingDeviceMapper.delete(new QueryWrapper<AppSchedulingDevice>().eq("device_id",id));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package org.dromara.app.service.impl;
|
package org.dromara.app.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
@@ -76,8 +78,8 @@ public class AppScheduleDetailServiceImpl implements IAppScheduleDetailService {
|
|||||||
lqw.orderByAsc(AppScheduleDetail::getId);
|
lqw.orderByAsc(AppScheduleDetail::getId);
|
||||||
lqw.eq(bo.getScheduleId() != null, AppScheduleDetail::getScheduleId, bo.getScheduleId());
|
lqw.eq(bo.getScheduleId() != null, AppScheduleDetail::getScheduleId, bo.getScheduleId());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getWeekday()), AppScheduleDetail::getWeekday, bo.getWeekday());
|
lqw.eq(StringUtils.isNotBlank(bo.getWeekday()), AppScheduleDetail::getWeekday, bo.getWeekday());
|
||||||
lqw.eq(bo.getStartTime() != null, AppScheduleDetail::getStartTime, bo.getStartTime());
|
lqw.eq(bo.getTimeData() != null, AppScheduleDetail::getTimeData, bo.getTimeData());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getDurationMin()), AppScheduleDetail::getDurationMin, bo.getDurationMin());
|
lqw.eq(ObjectUtil.isNotNull(bo.getDurationMin()), AppScheduleDetail::getDurationMin, bo.getDurationMin());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getZones()), AppScheduleDetail::getZones, bo.getZones());
|
lqw.eq(StringUtils.isNotBlank(bo.getZones()), AppScheduleDetail::getZones, bo.getZones());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getTriggerType()), AppScheduleDetail::getTriggerType, bo.getTriggerType());
|
lqw.eq(StringUtils.isNotBlank(bo.getTriggerType()), AppScheduleDetail::getTriggerType, bo.getTriggerType());
|
||||||
return lqw;
|
return lqw;
|
||||||
@@ -136,7 +138,8 @@ public class AppScheduleDetailServiceImpl implements IAppScheduleDetailService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AppScheduleDetailVo> queryByScheduleId(Long id) {
|
public List<AppScheduleDetailVo> queryByScheduleIdByStatus(Long id) {
|
||||||
return List.of();
|
|
||||||
|
return baseMapper.selectVoList(new QueryWrapper<AppScheduleDetail>().eq("schedule_id",id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,14 @@ package org.dromara.app.service.impl;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import org.dromara.app.domain.AppSchedulingDevice;
|
import org.dromara.app.domain.AppSchedulingDevice;
|
||||||
|
import org.dromara.app.domain.vo.AppDeviceVo;
|
||||||
|
import org.dromara.app.domain.vo.AppScheduleDetailVo;
|
||||||
|
import org.dromara.app.domain.vo.AppSchedulingDeviceVo;
|
||||||
import org.dromara.app.mapper.AppScheduleDetailMapper;
|
import org.dromara.app.mapper.AppScheduleDetailMapper;
|
||||||
import org.dromara.app.mapper.AppSchedulingDeviceMapper;
|
import org.dromara.app.mapper.AppSchedulingDeviceMapper;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.json.utils.JsonUtils;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@@ -14,6 +18,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.dromara.app.domain.bo.AppScheduleBo;
|
import org.dromara.app.domain.bo.AppScheduleBo;
|
||||||
import org.dromara.app.domain.vo.AppScheduleVo;
|
import org.dromara.app.domain.vo.AppScheduleVo;
|
||||||
@@ -24,6 +29,7 @@ import org.dromara.app.service.IAppScheduleService;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -84,6 +90,7 @@ public class AppScheduleServiceImpl implements IAppScheduleService {
|
|||||||
lqw.orderByAsc(AppSchedule::getId);
|
lqw.orderByAsc(AppSchedule::getId);
|
||||||
lqw.like(StringUtils.isNotBlank(bo.getName()), AppSchedule::getName, bo.getName());
|
lqw.like(StringUtils.isNotBlank(bo.getName()), AppSchedule::getName, bo.getName());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), AppSchedule::getStatus, bo.getStatus());
|
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), AppSchedule::getStatus, bo.getStatus());
|
||||||
|
lqw.eq(bo.getUserId() != null, AppSchedule::getUserId, bo.getUserId());
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,37 +102,54 @@ public class AppScheduleServiceImpl implements IAppScheduleService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public Boolean insertByBo(AppScheduleBo bo) {
|
public AppScheduleVo insertByBo(AppScheduleBo bo) {
|
||||||
AppSchedule add = MapstructUtils.convert(bo, AppSchedule.class);
|
AppSchedule add = MapstructUtils.convert(bo, AppSchedule.class);
|
||||||
|
add.setUserId(LoginHelper.getUserId());
|
||||||
validEntityBeforeSave(add);
|
validEntityBeforeSave(add);
|
||||||
//创建排程
|
//创建排程
|
||||||
boolean flag = baseMapper.insert(add) > 0;
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
//创建详情
|
if (flag){
|
||||||
for (AppScheduleBo.AppScheduleDetail item:bo.getDetails()){
|
AppScheduleVo vo = MapstructUtils.convert(add, AppScheduleVo.class);
|
||||||
AppScheduleDetail detail = new AppScheduleDetail();
|
List list = new ArrayList<>();
|
||||||
detail.setWeekday(item.getWeekday());
|
//创建详情
|
||||||
detail.setStartTime(item.getStartTime());
|
for (AppScheduleBo.AppScheduleDetail item:bo.getDetails()){
|
||||||
detail.setDurationMin(item.getDurationMin());
|
AppScheduleDetail detail = new AppScheduleDetail();
|
||||||
detail.setZones(item.getZones());
|
detail.setScheduleId(add.getId());
|
||||||
detail.setTriggerType(item.getTriggerType());
|
detail.setWeekday(item.getWeekday());
|
||||||
scheduleDetailMapper.insert(detail);
|
if (ObjectUtil.isNotNull(item.getTimeData())){
|
||||||
}
|
detail.setTimeData(JsonUtils.toJsonString(item.getTimeData()));
|
||||||
//绑定设备
|
// detail.setEndTime(item.getStartTime().plusMinutes(item.getDurationMin()));
|
||||||
for (Long deviceId:bo.getDeviceIds()){
|
}
|
||||||
//查询设备日程冲突
|
detail.setZones(item.getZones());
|
||||||
List list = checkConflict(deviceId, bo);
|
detail.setTriggerType(item.getTriggerType());
|
||||||
if (list.size()!=0){
|
detail.setStatus(item.getStatus());
|
||||||
return false;
|
scheduleDetailMapper.insert(detail);
|
||||||
|
|
||||||
|
List timeSlots = new ArrayList();
|
||||||
|
for (AppScheduleBo.TimeSlot timeSlot:item.getTimeData()){
|
||||||
|
timeSlots.add(timeSlot);
|
||||||
|
}
|
||||||
|
Map map = new HashMap();
|
||||||
|
map.put("id",detail.getId() );
|
||||||
|
map.put("weekday",detail.getWeekday() );
|
||||||
|
map.put("timeData",timeSlots );
|
||||||
|
map.put("triggerType",detail.getTriggerType() );
|
||||||
|
map.put("status",detail.getStatus() );
|
||||||
|
map.put("createTime",detail.getCreateTime() );
|
||||||
|
list.add(map);
|
||||||
}
|
}
|
||||||
//没冲突设备绑定日程
|
vo.setDetails(list);
|
||||||
AppSchedulingDevice appSchedulingDevice = new AppSchedulingDevice();
|
return vo;
|
||||||
appSchedulingDevice.setDeviceId(deviceId);
|
|
||||||
appSchedulingDevice.setSchedulingId(add.getId());
|
|
||||||
appSchedulingDevice.setCreateTime(new Date());
|
|
||||||
schedulingDeviceMapper.insert(appSchedulingDevice);
|
|
||||||
}
|
}
|
||||||
return flag;
|
|
||||||
|
return new AppScheduleVo();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean updateStatusByBo(AppScheduleBo bo) {
|
||||||
|
AppSchedule update = MapstructUtils.convert(bo, AppSchedule.class);
|
||||||
|
return baseMapper.updateById(update)>0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -135,36 +159,47 @@ public class AppScheduleServiceImpl implements IAppScheduleService {
|
|||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List updateByBo(AppScheduleBo bo) {
|
@Transactional
|
||||||
|
public Map<String,Object> updateByBo(AppScheduleBo bo) {
|
||||||
AppSchedule update = MapstructUtils.convert(bo, AppSchedule.class);
|
AppSchedule update = MapstructUtils.convert(bo, AppSchedule.class);
|
||||||
validEntityBeforeSave(update);
|
validEntityBeforeSave(update);
|
||||||
|
|
||||||
|
Map<String,Object> repMap = new HashMap();
|
||||||
//修改详情
|
Boolean flag = baseMapper.updateById(update)>0;
|
||||||
for (AppScheduleBo.AppScheduleDetail item:bo.getDetails()){
|
repMap.put("flag", flag);
|
||||||
AppScheduleDetail detail = new AppScheduleDetail();
|
repMap.put("list", new ArrayList<>());
|
||||||
detail.setWeekday(item.getWeekday());
|
repMap.put("appSchedule", "");
|
||||||
detail.setStartTime(item.getStartTime());
|
if (flag){
|
||||||
detail.setDurationMin(item.getDurationMin());
|
AppScheduleVo appScheduleVo = baseMapper.selectVoById(update.getId());
|
||||||
detail.setZones(item.getZones());
|
//修改详情
|
||||||
detail.setTriggerType(item.getTriggerType());
|
List detailList = new ArrayList<>();
|
||||||
scheduleDetailMapper.updateById(detail);
|
for (AppScheduleBo.AppScheduleDetail item:bo.getDetails()){
|
||||||
}
|
AppScheduleDetail detail = new AppScheduleDetail();
|
||||||
//绑定设备
|
detail.setWeekday(item.getWeekday());
|
||||||
for (Long deviceId:bo.getDeviceIds()){
|
detail.setId(item.getId());
|
||||||
//查询设备日程冲突
|
detail.setTimeData(JsonUtils.toJsonString(item.getTimeData()));
|
||||||
List list = checkConflict(deviceId, bo);
|
detail.setZones(item.getZones());
|
||||||
if (list.size()!=0){
|
detail.setTriggerType(item.getTriggerType());
|
||||||
//有冲突
|
detail.setStatus(item.getStatus());
|
||||||
return list;
|
scheduleDetailMapper.updateById(detail);
|
||||||
|
List timeSlots = new ArrayList();
|
||||||
|
for (AppScheduleBo.TimeSlot timeSlot:item.getTimeData()){
|
||||||
|
timeSlots.add(timeSlot);
|
||||||
|
}
|
||||||
|
Map map = new HashMap();
|
||||||
|
map.put("id",detail.getId() );
|
||||||
|
map.put("weekday",detail.getWeekday() );
|
||||||
|
map.put("timeData",timeSlots );
|
||||||
|
map.put("triggerType",detail.getTriggerType() );
|
||||||
|
map.put("status",detail.getStatus() );
|
||||||
|
map.put("createTime",detail.getCreateTime() );
|
||||||
|
detailList.add(map);
|
||||||
}
|
}
|
||||||
//没冲突设备绑定日程
|
appScheduleVo.setDetails(detailList);
|
||||||
AppSchedulingDevice appSchedulingDevice = new AppSchedulingDevice();
|
repMap.put("appSchedule", appScheduleVo);
|
||||||
appSchedulingDevice.setDeviceId(deviceId);
|
return repMap;
|
||||||
appSchedulingDevice.setSchedulingId(bo.getId());
|
|
||||||
appSchedulingDevice.setCreateTime(new Date());
|
|
||||||
}
|
}
|
||||||
return new ArrayList();
|
return repMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -182,44 +217,55 @@ public class AppScheduleServiceImpl implements IAppScheduleService {
|
|||||||
* @return 是否删除成功
|
* @return 是否删除成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
if(isValid){
|
|
||||||
//TODO 做一些业务上的校验,判断是否需要校验
|
boolean flag = false;
|
||||||
|
try {
|
||||||
|
flag = baseMapper.deleteByIds(ids) > 0;
|
||||||
|
if (flag){
|
||||||
|
for (Long id :ids){
|
||||||
|
schedulingDeviceMapper.delete(new QueryWrapper<AppSchedulingDevice>().eq("schedule_id",id ));
|
||||||
|
scheduleDetailMapper.delete(new QueryWrapper<AppScheduleDetail>().eq("schedule_id", id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
return baseMapper.deleteByIds(ids) > 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查新日程与设备已绑定日程是否存在时间冲突
|
* 检查新日程与设备已绑定日程是否存在时间冲突
|
||||||
*/
|
*/
|
||||||
public List checkConflict(Long deviceId, AppScheduleBo newSchedule) {
|
public List checkConflict(Long deviceId, AppScheduleVo newSchedule) {
|
||||||
// 1. 获取该设备所有已绑定的日程
|
// 1. 获取该设备所有已绑定的日程
|
||||||
List<AppSchedulingDevice> existingBindings = schedulingDeviceMapper.selectList(new QueryWrapper<AppSchedulingDevice>().eq("device_id", deviceId));
|
List<AppSchedulingDevice> existingBindings = schedulingDeviceMapper.selectList(new QueryWrapper<AppSchedulingDevice>().eq("device_id", deviceId));
|
||||||
|
|
||||||
List conflicts = new ArrayList<>();
|
List conflicts = new ArrayList<>();
|
||||||
|
//新日程的详情列
|
||||||
|
List<AppScheduleDetail> scheduleDetails = scheduleDetailMapper.selectList(new QueryWrapper<AppScheduleDetail>().eq("schedule_id", newSchedule.getId()));
|
||||||
// 2. 对新日程的每一天,与已存在的每一天逐一比较
|
// 2. 对新日程的每一天,与已存在的每一天逐一比较
|
||||||
for (AppScheduleDetail newDay : newSchedule.getDetails()) {
|
for (AppScheduleDetail newDay : scheduleDetails) {
|
||||||
//关闭的排程直接跳出
|
|
||||||
if ("0".equals(newSchedule.getStatus())) break;
|
|
||||||
//此设备日程
|
//此设备日程
|
||||||
for (AppSchedulingDevice existing : existingBindings){
|
for (AppSchedulingDevice existing : existingBindings){
|
||||||
AppScheduleVo appScheduleVo = baseMapper.selectVoById(existing.getSchedulingId());
|
AppScheduleVo appScheduleVo = baseMapper.selectVoById(existing.getScheduleId());
|
||||||
if (ObjectUtil.isNotNull(appScheduleVo) && !"0".equals(appScheduleVo.getStatus())){
|
if (ObjectUtil.isNotNull(appScheduleVo) && !"0".equals(appScheduleVo.getStatus())){
|
||||||
List<AppScheduleDetail> details = scheduleDetailMapper.selectList(new QueryWrapper<AppScheduleDetail>().eq("scheduling_id", existing.getSchedulingId()));
|
List<AppScheduleDetail> details = scheduleDetailMapper.selectList(new QueryWrapper<AppScheduleDetail>().eq("schedule_id", existing.getScheduleId()));
|
||||||
|
|
||||||
for (AppScheduleDetail existingDay:details ){
|
for (AppScheduleDetail existingDay:details ){
|
||||||
|
|
||||||
// 3. 同一天才检查时间重叠
|
// 3. 同一天才检查时间重叠
|
||||||
if (newDay.getWeekday() == existingDay.getWeekday()) {
|
if (newDay.getWeekday() == existingDay.getWeekday()) {
|
||||||
if (timeOverlap(newDay, existingDay)) {
|
// if (timeOverlap(newDay, existingDay)) {
|
||||||
|
//
|
||||||
Map map = new HashMap();
|
// Map map = new HashMap();
|
||||||
map.put("scheduleName", appScheduleVo.getName());
|
// map.put("scheduleName", appScheduleVo.getName());
|
||||||
map.put("newDay", newDay);
|
// map.put("newDay", newDay);
|
||||||
map.put("existingDay", existingDay);
|
// map.put("existingDay", existingDay);
|
||||||
conflicts.add(map);
|
// conflicts.add(map);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -232,13 +278,13 @@ public class AppScheduleServiceImpl implements IAppScheduleService {
|
|||||||
* 判断两段时间是否重叠
|
* 判断两段时间是否重叠
|
||||||
* 重叠条件:start1 < end2 && start2 < end1
|
* 重叠条件:start1 < end2 && start2 < end1
|
||||||
*/
|
*/
|
||||||
public boolean timeOverlap(AppScheduleDetail a, AppScheduleDetail b) {
|
// public boolean timeOverlap(AppScheduleDetail a, AppScheduleDetail b) {
|
||||||
LocalTime bendTime = b.getStartTime().plusMinutes(b.getDurationMin());
|
// LocalTime bendTime = b.getStartTime().plusMinutes(b.getDurationMin());
|
||||||
LocalTime aendTime = a.getStartTime().plusMinutes(a.getDurationMin());
|
// LocalTime aendTime = a.getStartTime().plusMinutes(a.getDurationMin());
|
||||||
|
//
|
||||||
return a.getStartTime().isBefore(bendTime)
|
// return a.getStartTime().isBefore(bendTime)
|
||||||
&& b.getStartTime().isBefore(aendTime);
|
// && b.getStartTime().isBefore(aendTime);
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package org.dromara.app.service.impl;
|
package org.dromara.app.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@@ -73,7 +73,7 @@ public class AppSchedulingDeviceServiceImpl implements IAppSchedulingDeviceServi
|
|||||||
private LambdaQueryWrapper<AppSchedulingDevice> buildQueryWrapper(AppSchedulingDeviceBo bo) {
|
private LambdaQueryWrapper<AppSchedulingDevice> buildQueryWrapper(AppSchedulingDeviceBo bo) {
|
||||||
Map<String, Object> params = bo.getParams();
|
Map<String, Object> params = bo.getParams();
|
||||||
LambdaQueryWrapper<AppSchedulingDevice> lqw = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<AppSchedulingDevice> lqw = Wrappers.lambdaQuery();
|
||||||
lqw.eq(bo.getSchedulingId() != null, AppSchedulingDevice::getSchedulingId, bo.getSchedulingId());
|
lqw.eq(bo.getScheduleId() != null, AppSchedulingDevice::getScheduleId, bo.getScheduleId());
|
||||||
lqw.eq(bo.getDeviceId() != null, AppSchedulingDevice::getDeviceId, bo.getDeviceId());
|
lqw.eq(bo.getDeviceId() != null, AppSchedulingDevice::getDeviceId, bo.getDeviceId());
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
@@ -90,7 +90,7 @@ public class AppSchedulingDeviceServiceImpl implements IAppSchedulingDeviceServi
|
|||||||
validEntityBeforeSave(add);
|
validEntityBeforeSave(add);
|
||||||
boolean flag = baseMapper.insert(add) > 0;
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
if (flag) {
|
if (flag) {
|
||||||
bo.setSchedulingId(add.getSchedulingId());
|
bo.setScheduleId(add.getScheduleId());
|
||||||
}
|
}
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
@@ -129,4 +129,25 @@ public class AppSchedulingDeviceServiceImpl implements IAppSchedulingDeviceServi
|
|||||||
}
|
}
|
||||||
return baseMapper.deleteByIds(ids) > 0;
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AppSchedulingDeviceVo queryById2DeviveId(Long scheduleId, Long id) {
|
||||||
|
return baseMapper.selectVoOne(new QueryWrapper<AppSchedulingDevice>().eq("schedule_id",scheduleId).eq("device_id",id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AppSchedulingDeviceVo> queryByDeviveId(Long id) {
|
||||||
|
return baseMapper.selectVoList(new QueryWrapper<AppSchedulingDevice>().eq("device_id",id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean deleteWithValidByschedulingIds2Ids(Long schedulingId, Long deviceId) {
|
||||||
|
return baseMapper.delete(new QueryWrapper<AppSchedulingDevice>().eq("schedule_id",schedulingId).eq("device_id",deviceId)) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AppSchedulingDeviceVo> findByDeviceId(Long deviceId) {
|
||||||
|
return baseMapper.selectVoList(new QueryWrapper<AppSchedulingDevice>().eq("device_id",deviceId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.dromara.app.service.impl;
|
package org.dromara.app.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.system.domain.SysConfig;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.dromara.app.domain.bo.AppWateringLogBo;
|
import org.dromara.app.domain.bo.AppWateringLogBo;
|
||||||
import org.dromara.app.domain.vo.AppWateringLogVo;
|
import org.dromara.app.domain.vo.AppWateringLogVo;
|
||||||
@@ -82,7 +84,10 @@ public class AppWateringLogServiceImpl implements IAppWateringLogService {
|
|||||||
lqw.eq(StringUtils.isNotBlank(bo.getDurationMin()), AppWateringLog::getDurationMin, bo.getDurationMin());
|
lqw.eq(StringUtils.isNotBlank(bo.getDurationMin()), AppWateringLog::getDurationMin, bo.getDurationMin());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getZones()), AppWateringLog::getZones, bo.getZones());
|
lqw.eq(StringUtils.isNotBlank(bo.getZones()), AppWateringLog::getZones, bo.getZones());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getTriggerType()), AppWateringLog::getTriggerType, bo.getTriggerType());
|
lqw.eq(StringUtils.isNotBlank(bo.getTriggerType()), AppWateringLog::getTriggerType, bo.getTriggerType());
|
||||||
lqw.eq(bo.getCreatedTime() != null, AppWateringLog::getCreatedTime, bo.getCreatedTime());
|
// lqw.eq(bo.getCreateTime() != null, AppWateringLog::getCreateTime, bo.getCreateTime());
|
||||||
|
lqw.between(params.get("beginTime") != null && params.get("endTime") != null,
|
||||||
|
AppWateringLog::getCreateTime, params.get("beginTime"), params.get("endTime"));
|
||||||
|
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,4 +142,32 @@ public class AppWateringLogServiceImpl implements IAppWateringLogService {
|
|||||||
}
|
}
|
||||||
return baseMapper.deleteByIds(ids) > 0;
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long queryCount(Long userId) {
|
||||||
|
return baseMapper.selectCount(new QueryWrapper<AppWateringLog>().eq("user_id",userId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long queryByMonCount(Long userId) {
|
||||||
|
|
||||||
|
return baseMapper.selectByMonCout(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long queryByWeekCount(Long userId) {
|
||||||
|
|
||||||
|
return baseMapper.selectByWeekCount(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long queryByTriggerTypeCount(Long userId, String triggerType) {
|
||||||
|
return baseMapper.selectByTriggerTypeCount(userId,triggerType);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long queryByTotalWateringTime(Long userId) {
|
||||||
|
return baseMapper.selectByTotalWateringTime(userId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,6 +115,8 @@ public class SysUserBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String excludeUserIds;
|
private String excludeUserIds;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public SysUserBo(Long userId) {
|
public SysUserBo(Long userId) {
|
||||||
this.userId = userId;
|
this.userId = userId;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user