From 2183d16c1590c3b4528d51a7e9d5880aab1a1146 Mon Sep 17 00:00:00 2001
From: byteblogs168 <598092184@qq.com>
Date: Mon, 18 Sep 2023 23:30:15 +0800
Subject: [PATCH] =?UTF-8?q?feat:2.4.0=201.=20=E8=B0=83=E6=95=B4=E5=8C=85?=
=?UTF-8?q?=E7=BB=93=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../easy-retry-server-common/.gitignore | 38 ++++
.../easy-retry-server-common/pom.xml | 110 ++++++++++
.../server/common}/ClientLoadBalance.java | 2 +-
.../easy/retry/server/common}/Lifecycle.java | 2 +-
.../easy/retry/server/common}/Register.java | 4 +-
.../common}/RegisterNodeInfoConverter.java | 4 +-
.../server/common}/ServerLoadBalance.java | 27 +--
.../server/common}/akka/ActorGenerator.java | 41 ++--
.../common}/akka/AkkaConfiguration.java | 2 +-
.../common}/akka/SpringActorProducer.java | 2 +-
.../server/common}/akka/SpringExtension.java | 2 +-
.../ClientLoadBalanceConsistentHash.java | 10 +-
.../allocate/client/ClientLoadBalanceLRU.java | 4 +-
.../client/ClientLoadBalanceManager.java | 4 +-
.../client/ClientLoadBalanceRandom.java | 6 +-
.../allocate/common/ConsistentHashRouter.java | 2 +-
.../common}/allocate/common/HashFunction.java | 2 +-
.../server/common}/allocate/common/Node.java | 2 +-
.../common}/allocate/common/VirtualNode.java | 2 +-
.../server/AllocateMessageQueueAveragely.java | 61 ++++++
.../AllocateMessageQueueConsistentHash.java | 14 +-
.../cache/CacheConsumerBucketGroup.java | 74 +++++++
.../common}/cache/CacheConsumerGroup.java | 4 +-
.../server/common}/cache/CacheGroup.java | 5 +-
.../common}/cache/CacheRegisterTable.java | 10 +-
.../server/common}/client/RequestBuilder.java | 5 +-
.../server/common}/client/RequestMethod.java | 2 +-
.../server/common}/client/RpcClient.java | 8 +-
.../client/RpcClientInvokeHandler.java | 22 +-
.../common}/client/annotation/Body.java | 2 +-
.../common}/client/annotation/Header.java | 2 +-
.../common}/client/annotation/Mapping.java | 4 +-
.../common}/client/annotation/Param.java | 2 +-
...asyRetryServerCommonAutoConfiguration.java | 16 ++
.../server/common}/config/JacksonConfig.java | 4 +-
.../common}/config/RestTemplateConfig.java | 2 +-
.../common}/config/SystemProperties.java | 7 +-
.../retry/server/common}/dto/LockConfig.java | 5 +-
.../server/common}/dto/NettyHttpRequest.java | 5 +-
.../server/common}/dto/RegisterNodeInfo.java | 5 +-
.../common}/dto/ServerNodeExtAttrs.java | 2 +-
.../enums/AllocationAlgorithmEnum.java | 2 +-
.../server/common}/enums/DelayLevelEnum.java | 2 +-
.../server/common}/enums/IdGeneratorMode.java | 2 +-
.../common}/enums/TaskGeneratorScene.java | 4 +-
.../server/common}/enums/TaskTypeEnum.java | 4 +-
.../exception/EasyRetryServerException.java | 3 +-
.../common/generator/id}/IdGenerator.java | 2 +-
.../server/common}/generator/id/Segment.java | 2 +-
.../common}/generator/id/SegmentBuffer.java | 2 +-
.../generator/id/SegmentIdGenerator.java | 7 +-
.../generator/id/SnowflakeIdGenerator.java | 5 +-
.../handler/ClientNodeAllocateHandler.java | 10 +-
.../common/handler/DistributeInstance.java | 15 ++
.../handler/GetHttpRequestHandler.java | 2 +-
.../common}/handler/HttpRequestHandler.java | 2 +-
.../handler/PostHttpRequestHandler.java | 2 +-
.../common}/handler/ServerNodeBalance.java | 42 ++--
.../common}/register/AbstractRegister.java | 8 +-
.../common}/register/ClientRegister.java | 6 +-
.../common}/register/RegisterContext.java | 2 +-
.../common}/register/ServerRegister.java | 10 +-
.../main/resources/META-INF/spring.factories | 2 +
.../spring-configuration-metadata.json | 18 ++
.../easy-retry-server-job-task/.gitignore | 38 ++++
.../easy-retry-server-job-task/pom.xml | 41 ++++
.../easy-retry-server-retry-task/.gitignore | 38 ++++
.../easy-retry-server-retry-task/pom.xml | 81 +++++++
...RetryServerRetryTaskAutoConfiguration.java | 16 ++
.../generator/task/AbstractGenerator.java | 24 +--
.../task/ClientReportRetryGenerator.java | 4 +-
.../task/ManaBatchRetryGenerator.java | 4 +-
.../task/ManaSingleRetryGenerator.java | 4 +-
.../task}/generator/task/TaskContext.java | 2 +-
.../task/generator/task}/TaskGenerator.java | 5 +-
.../service}/RetryDeadLetterConverter.java | 2 +-
.../retry/task}/service/RetryService.java | 2 +-
.../task/service/TaskContextConverter.java | 20 ++
.../task}/service/impl/RetryServiceImpl.java | 30 ++-
.../retry/task}/support/FilterStrategy.java | 2 +-
.../task}/support/IdempotentStrategy.java | 2 +-
.../retry/task}/support/RetryContext.java | 5 +-
.../task/support}/RetryTaskConverter.java | 7 +-
.../task/support}/RetryTaskLogConverter.java | 2 +-
.../server/retry/task}/support/Schedule.java | 2 +-
.../retry/task}/support/StopStrategy.java | 2 +-
.../retry/task}/support/WaitStrategy.java | 2 +-
.../support/cache/CacheGroupRateLimiter.java | 6 +-
.../support/cache/CacheGroupScanActor.java | 6 +-
.../task}/support/cache/CacheLockRecord.java | 4 +-
.../support/context/CallbackRetryContext.java | 10 +-
.../MaxAttemptsPersistenceRetryContext.java | 9 +-
.../support/dispatch/DispatchService.java | 16 +-
.../task}/support/dispatch/ScanTaskDTO.java | 2 +-
.../actor/exec/ExecCallbackUnitActor.java | 37 ++--
.../dispatch/actor/exec/ExecUnitActor.java | 31 ++-
.../support/dispatch/actor/log/LogActor.java | 11 +-
.../dispatch/actor/log/RetryTaskLogDTO.java | 2 +-
.../dispatch/actor/result/FailureActor.java | 18 +-
.../dispatch/actor/result/FinishActor.java | 12 +-
.../dispatch/actor/result/NoRetryActor.java | 13 +-
.../actor/scan/AbstractScanGroup.java | 16 +-
.../actor/scan/ScanCallbackGroupActor.java | 25 ++-
.../dispatch/actor/scan/ScanGroupActor.java | 24 +--
.../handler/CallbackRetryTaskHandler.java | 14 +-
.../handler/ConfigVersionSyncHandler.java | 8 +-
.../ReportRetryInfoHttpRequestHandler.java | 21 +-
.../BitSetIdempotentStrategyHandler.java | 8 +-
.../task}/support/listener/EndListener.java | 4 +-
.../task}/support/listener/StartListener.java | 5 +-
.../support/lock/AbstractLockProvider.java | 13 +-
.../task}/support/lock/JdbcLockProvider.java | 13 +-
.../task}/support/lock/LockProvider.java | 5 +-
.../task}/support/retry/RetryBuilder.java | 12 +-
.../task}/support/retry/RetryExecutor.java | 13 +-
.../support/schedule/AbstractSchedule.java | 12 +-
.../support/schedule/ClearLogSchedule.java | 8 +-
.../support/schedule/OfflineNodeSchedule.java | 10 +-
.../RetryErrorMoreThresholdAlarmSchedule.java | 4 +-
.../RetryTaskMoreThresholdAlarmSchedule.java | 4 +-
.../support/schedule/RetryTaskSchedule.java | 6 +-
.../support/strategy/FilterStrategies.java | 18 +-
.../support/strategy/StopStrategies.java | 8 +-
.../support/strategy/WaitStrategies.java | 14 +-
.../main/resources/META-INF/spring.factories | 2 +
.../.gitignore | 2 +-
.../Dockerfile | 2 +-
.../easy-retry-server-starter/pom.xml | 74 +++++++
.../server/EasyRetryServerApplication.java | 0
.../retry/server/server/NettyHttpServer.java | 7 +-
.../server/server/NettyHttpServerHandler.java | 6 +-
.../server/server/RequestHandlerActor.java | 21 +-
.../handler/BeatHttpRequestHandler.java | 1 +
.../handler/ConfigHttpRequestHandler.java | 1 +
.../admin/assets/background.6f870c8d.svg | 0
.../src/main/resources/admin/avatar2.jpg | Bin
.../main/resources/admin/css/app.f24fef3a.css | 1 +
.../admin/css/chunk-758b2aa4.1c9c785f.css | 0
.../admin/css/chunk-ec9b3564.28cc4171.css | 0
.../admin/css/chunk-ff9025ec.a34448d4.css | 0
.../admin/css/chunk-vendors.fecaff35.css | 0
.../resources/admin/css/user.6ccd4506.css | 0
.../resources/admin/img/logo.af534ed8.png | Bin
.../src/main/resources/admin/index.html | 0
.../main/resources/admin/js/app.295f12bd.js | 0
.../admin/js/chunk-251479d0.728e634b.js | 0
.../admin/js/chunk-2d0a4079.7a476d69.js | 0
.../admin/js/chunk-2d0b7230.56b5fe26.js | 0
.../admin/js/chunk-2d0c8f97.d89584ad.js | 0
.../admin/js/chunk-2d0f085f.a058313b.js | 0
.../admin/js/chunk-2d21a08f.98f6c23f.js | 0
.../admin/js/chunk-2d228eef.dd26fc5b.js | 0
.../admin/js/chunk-35f76107.c572dfc7.js | 0
.../admin/js/chunk-40597980.0ec09995.js | 0
.../admin/js/chunk-74bac939.c7253d3b.js | 0
.../admin/js/chunk-758b2aa4.2544202c.js | 0
.../admin/js/chunk-ec9b3564.02b5e172.js | 0
.../admin/js/chunk-ff9025ec.23405bb0.js | 0
.../admin/js/chunk-vendors.2d5d4160.js | 0
.../main/resources/admin/js/fail.a42f4ac2.js | 0
.../lang-zh-CN-account-settings.f8f25eaf.js | 0
.../admin/js/lang-zh-CN-account.7e2ad2ea.js | 0
.../lang-zh-CN-dashboard-analysis.98c2997a.js | 0
.../admin/js/lang-zh-CN-dashboard.ea812f6e.js | 0
.../js/lang-zh-CN-form-basicForm.ff3088ac.js | 0
.../admin/js/lang-zh-CN-form.5f6efd97.js | 0
.../admin/js/lang-zh-CN-global.bf0df5c8.js | 0
.../admin/js/lang-zh-CN-menu.25425a62.js | 0
.../js/lang-zh-CN-result-fail.232762aa.js | 0
.../js/lang-zh-CN-result-success.3519c60c.js | 0
.../admin/js/lang-zh-CN-result.7201a99b.js | 0
.../admin/js/lang-zh-CN-setting.8c2ce690.js | 0
.../admin/js/lang-zh-CN-user.81513cba.js | 0
.../resources/admin/js/lang-zh-CN.72b79d71.js | 0
.../main/resources/admin/js/user.badd730b.js | 0
.../src/main/resources/admin/logo.png | Bin
.../src/main/resources/application.yml | 0
.../src/main/resources/logback-boot.xml | 0
.../spring-configuration-metadata.json | 18 ++
.../aizuda/easy/retry/server/Abstract.java | 0
.../server/ConfigVersionSyncHandlerTest.java | 2 +-
.../server/XRetryServerApplicationTests.java | 0
.../server/mapper/RetryTaskMapperTest.java | 0
.../mapper/SystemConfigGroupMapperTest.java | 0
.../generator/id/SegmentIdGeneratorTest.java | 6 +-
.../easy-retry-server-web/.gitignore | 38 ++++
.../easy-retry-server-web/pom.xml | 94 ++++++++
.../server/web/annotation/LoginRequired.java | 0
.../server/web/annotation/LoginUser.java | 0
.../retry/server/web/annotation/RoleEnum.java | 0
.../EasyRetryServerWebAutoConfiguration.java | 16 ++
.../web/controller/DashBoardController.java | 4 +-
.../web/controller/GroupConfigController.java | 4 +-
.../controller/NotifyConfigController.java | 2 +-
.../controller/RetryDeadLetterController.java | 2 +-
.../web/controller/RetryTaskController.java | 11 +-
.../controller/RetryTaskLogController.java | 2 +-
.../SceneConfigSceneController.java | 2 +-
.../web/controller/SystemInfoController.java | 0
.../web/controller/SystemUserController.java | 2 +-
.../server/web/controller/WebController.java | 0
.../AuthenticationInterceptor.java | 2 +-
.../web/interceptor/CORSInterceptor.java | 0
.../LoginUserMethodArgumentResolver.java | 0
.../XRetryWebMvcConfigurerAdapter.java | 0
.../server/web/model/base/BaseQueryVO.java | 0
.../server/web/model/base/PageResult.java | 0
.../server/web/model/enums/DateTypeEnum.java | 0
.../request/BatchDeleteRetryDeadLetterVO.java | 0
.../model/request/BatchDeleteRetryTaskVO.java | 0
.../BatchRollBackRetryDeadLetterVO.java | 0
.../request/GenerateRetryIdempotentIdVO.java | 0
.../web/model/request/GroupConfigQueryVO.java | 0
.../model/request/GroupConfigRequestVO.java | 2 +-
.../request/ManualTriggerTaskRequestVO.java | 0
.../server/web/model/request/ParseLogsVO.java | 0
.../model/request/RetryDeadLetterQueryVO.java | 0
.../request/RetryTaskLogMessageQueryVO.java | 0
.../model/request/RetryTaskLogQueryVO.java | 0
.../web/model/request/RetryTaskQueryVO.java | 0
.../model/request/RetryTaskSaveRequestVO.java | 0
.../RetryTaskUpdateExecutorNameRequestVO.java | 0
.../RetryTaskUpdateStatusRequestVO.java | 0
.../web/model/request/SceneConfigQueryVO.java | 0
.../web/model/request/ServerNodeQueryVO.java | 0
.../web/model/request/SystemUserQueryVO.java | 0
.../model/request/SystemUserRequestVO.java | 0
.../response/ActivePodQuantityResponseVO.java | 0
.../response/DispatchQuantityResponseVO.java | 0
.../model/response/GroupConfigResponseVO.java | 0
.../response/NotifyConfigResponseVO.java | 0
.../response/RetryDeadLetterResponseVO.java | 0
.../RetryTaskLogMessageResponseVO.java | 0
.../response/RetryTaskLogResponseVO.java | 0
.../model/response/RetryTaskResponseVO.java | 0
.../model/response/SceneConfigResponseVO.java | 0
.../response/SceneQuantityRankResponseVO.java | 0
.../model/response/ServerNodeResponseVO.java | 0
.../model/response/SystemUserResponseVO.java | 0
.../response/TaskQuantityResponseVO.java | 0
.../server/web}/service/DashBoardService.java | 2 +-
.../web}/service/GroupConfigService.java | 2 +-
.../web}/service/NotifyConfigService.java | 2 +-
.../web}/service/RetryDeadLetterService.java | 2 +-
.../web}/service/RetryTaskLogService.java | 2 +-
.../server/web}/service/RetryTaskService.java | 11 +-
.../web}/service/SceneConfigService.java | 2 +-
.../web}/service/SystemUserService.java | 2 +-
.../DispatchQuantityResponseVOConverter.java | 2 +-
.../service/convert/GroupConfigConverter.java | 2 +-
.../GroupConfigResponseVOConverter.java | 2 +-
.../convert/NotifyConfigConverter.java | 2 +-
.../NotifyConfigResponseVOConverter.java | 2 +-
.../RetryDeadLetterResponseVOConverter.java | 2 +-
.../RetryTaskLogResponseVOConverter.java | 2 +-
.../convert/RetryTaskResponseVOConverter.java | 2 +-
.../service/convert/SceneConfigConverter.java | 2 +-
.../SceneConfigResponseVOConverter.java | 2 +-
.../SceneQuantityRankResponseVOConverter.java | 3 +-
.../ServerNodeResponseVOConverter.java | 4 +-
.../SystemUserResponseVOConverter.java | 2 +-
.../service/convert/TaskContextConverter.java | 4 +-
.../service/impl/DashBoardServiceImpl.java | 49 ++---
.../service/impl/GroupConfigServiceImpl.java | 22 +-
.../service/impl/NotifyConfigServiceImpl.java | 6 +-
.../impl/RetryDeadLetterServiceImpl.java | 27 +--
.../service/impl/RetryTaskLogServiceImpl.java | 22 +-
.../service/impl/RetryTaskServiceImpl.java | 73 ++++---
.../service/impl/SceneConfigServiceImpl.java | 10 +-
.../service/impl/SystemUserServiceImpl.java | 11 +-
.../main/resources/META-INF/spring.factories | 2 +
easy-retry-server/pom.xml | 204 ++++++++----------
.../main/resources/admin/css/app.f24fef3a.css | 1 -
.../spring-configuration-metadata.json | 18 --
pom.xml | 2 -
275 files changed, 1526 insertions(+), 761 deletions(-)
create mode 100644 easy-retry-server/easy-retry-server-common/.gitignore
create mode 100644 easy-retry-server/easy-retry-server-common/pom.xml
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/ClientLoadBalance.java (83%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/Lifecycle.java (83%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/Register.java (78%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/service/convert => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/RegisterNodeInfoConverter.java (79%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/ServerLoadBalance.java (62%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/akka/ActorGenerator.java (74%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/akka/AkkaConfiguration.java (98%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/akka/SpringActorProducer.java (96%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/akka/SpringExtension.java (94%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/allocate/client/ClientLoadBalanceConsistentHash.java (79%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/allocate/client/ClientLoadBalanceLRU.java (92%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/allocate/client/ClientLoadBalanceManager.java (89%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/allocate/client/ClientLoadBalanceRandom.java (77%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/allocate/common/ConsistentHashRouter.java (98%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/allocate/common/HashFunction.java (93%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/allocate/common/Node.java (94%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/allocate/common/VirtualNode.java (90%)
create mode 100644 easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/server/AllocateMessageQueueAveragely.java
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/allocate/server/AllocateMessageQueueConsistentHash.java (89%)
create mode 100644 easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/cache/CacheConsumerBucketGroup.java
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/cache/CacheConsumerGroup.java (94%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/cache/CacheGroup.java (93%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/cache/CacheRegisterTable.java (94%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/client/RequestBuilder.java (94%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/client/RequestMethod.java (77%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/client/RpcClient.java (75%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/client/RpcClientInvokeHandler.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/client/annotation/Body.java (86%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/client/annotation/Header.java (86%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/client/annotation/Mapping.java (79%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/client/annotation/Param.java (87%)
create mode 100644 easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/EasyRetryServerCommonAutoConfiguration.java
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/config/JacksonConfig.java (90%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/config/RestTemplateConfig.java (94%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/config/SystemProperties.java (92%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/dto/LockConfig.java (92%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/dto/NettyHttpRequest.java (85%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/dto/RegisterNodeInfo.java (78%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/dto/ServerNodeExtAttrs.java (82%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/enums/AllocationAlgorithmEnum.java (85%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/enums/DelayLevelEnum.java (97%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/enums/IdGeneratorMode.java (92%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/enums/TaskGeneratorScene.java (85%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/enums/TaskTypeEnum.java (79%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/exception/EasyRetryServerException.java (88%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support/generator => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id}/IdGenerator.java (88%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/generator/id/Segment.java (95%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/generator/id/SegmentBuffer.java (98%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/generator/id/SegmentIdGenerator.java (98%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/generator/id/SnowflakeIdGenerator.java (79%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/handler/ClientNodeAllocateHandler.java (82%)
create mode 100644 easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/DistributeInstance.java
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/handler/GetHttpRequestHandler.java (92%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/handler/HttpRequestHandler.java (89%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/server => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/handler/PostHttpRequestHandler.java (92%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/handler/ServerNodeBalance.java (89%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/register/AbstractRegister.java (90%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/register/ClientRegister.java (94%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/register/RegisterContext.java (88%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common}/register/ServerRegister.java (91%)
create mode 100644 easy-retry-server/easy-retry-server-common/src/main/resources/META-INF/spring.factories
create mode 100644 easy-retry-server/easy-retry-server-common/src/main/resources/spring-configuration-metadata.json
create mode 100644 easy-retry-server/easy-retry-server-job-task/.gitignore
create mode 100644 easy-retry-server/easy-retry-server-job-task/pom.xml
create mode 100644 easy-retry-server/easy-retry-server-retry-task/.gitignore
create mode 100644 easy-retry-server/easy-retry-server-retry-task/pom.xml
create mode 100644 easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/config/EasyRetryServerRetryTaskAutoConfiguration.java
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/generator/task/AbstractGenerator.java (92%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/generator/task/ClientReportRetryGenerator.java (81%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/generator/task/ManaBatchRetryGenerator.java (83%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/generator/task/ManaSingleRetryGenerator.java (83%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/generator/task/TaskContext.java (93%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/support/generator => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task}/TaskGenerator.java (78%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/service/convert => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service}/RetryDeadLetterConverter.java (93%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/service/RetryService.java (94%)
create mode 100644 easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service/TaskContextConverter.java
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/service/impl/RetryServiceImpl.java (92%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/FilterStrategy.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/IdempotentStrategy.java (81%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/RetryContext.java (87%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/service/convert => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support}/RetryTaskConverter.java (77%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/service/convert => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support}/RetryTaskLogConverter.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/Schedule.java (70%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/StopStrategy.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/WaitStrategy.java (87%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/cache/CacheGroupRateLimiter.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/cache/CacheGroupScanActor.java (88%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/cache/CacheLockRecord.java (92%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/context/CallbackRetryContext.java (72%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/context/MaxAttemptsPersistenceRetryContext.java (78%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/dispatch/DispatchService.java (89%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/dispatch/ScanTaskDTO.java (73%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/dispatch/actor/exec/ExecCallbackUnitActor.java (83%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/dispatch/actor/exec/ExecUnitActor.java (86%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/dispatch/actor/log/LogActor.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/dispatch/actor/log/RetryTaskLogDTO.java (85%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/dispatch/actor/result/FailureActor.java (87%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/dispatch/actor/result/FinishActor.java (87%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/dispatch/actor/result/NoRetryActor.java (81%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/dispatch/actor/scan/AbstractScanGroup.java (90%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/dispatch/actor/scan/ScanCallbackGroupActor.java (77%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/dispatch/actor/scan/ScanGroupActor.java (79%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/handler/CallbackRetryTaskHandler.java (87%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/handler/ConfigVersionSyncHandler.java (93%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support}/handler/ReportRetryInfoHttpRequestHandler.java (88%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/idempotent/BitSetIdempotentStrategyHandler.java (85%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/listener/EndListener.java (86%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/listener/StartListener.java (87%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/lock/AbstractLockProvider.java (74%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/lock/JdbcLockProvider.java (90%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/lock/LockProvider.java (67%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/retry/RetryBuilder.java (83%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/retry/RetryExecutor.java (87%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/schedule/AbstractSchedule.java (84%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/schedule/ClearLogSchedule.java (88%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/schedule/OfflineNodeSchedule.java (87%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/schedule/RetryErrorMoreThresholdAlarmSchedule.java (97%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/schedule/RetryTaskMoreThresholdAlarmSchedule.java (97%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/schedule/RetryTaskSchedule.java (89%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/strategy/FilterStrategies.java (94%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/strategy/StopStrategies.java (92%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task}/support/strategy/WaitStrategies.java (94%)
create mode 100644 easy-retry-server/easy-retry-server-retry-task/src/main/resources/META-INF/spring.factories
rename easy-retry-server/{ => easy-retry-server-starter}/.gitignore (97%)
rename easy-retry-server/{ => easy-retry-server-starter}/Dockerfile (80%)
create mode 100644 easy-retry-server/easy-retry-server-starter/pom.xml
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/java/com/aizuda/easy/retry/server/EasyRetryServerApplication.java (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServer.java (94%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServerHandler.java (88%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/java/com/aizuda/easy/retry/server/server/RequestHandlerActor.java (90%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/java/com/aizuda/easy/retry/server/server/handler/BeatHttpRequestHandler.java (95%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/java/com/aizuda/easy/retry/server/server/handler/ConfigHttpRequestHandler.java (95%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/assets/background.6f870c8d.svg (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/avatar2.jpg (100%)
create mode 100644 easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/app.f24fef3a.css
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/css/chunk-758b2aa4.1c9c785f.css (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/css/chunk-ec9b3564.28cc4171.css (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/css/chunk-ff9025ec.a34448d4.css (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/css/chunk-vendors.fecaff35.css (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/css/user.6ccd4506.css (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/img/logo.af534ed8.png (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/index.html (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/app.295f12bd.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-251479d0.728e634b.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-2d0a4079.7a476d69.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-2d0b7230.56b5fe26.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-2d0c8f97.d89584ad.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-2d0f085f.a058313b.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-2d21a08f.98f6c23f.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-2d228eef.dd26fc5b.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-35f76107.c572dfc7.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-40597980.0ec09995.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-74bac939.c7253d3b.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-758b2aa4.2544202c.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-ec9b3564.02b5e172.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-ff9025ec.23405bb0.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/chunk-vendors.2d5d4160.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/fail.a42f4ac2.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN-account-settings.f8f25eaf.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN-account.7e2ad2ea.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN-dashboard-analysis.98c2997a.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN-dashboard.ea812f6e.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN-form-basicForm.ff3088ac.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN-form.5f6efd97.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN-global.bf0df5c8.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN-menu.25425a62.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN-result-fail.232762aa.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN-result-success.3519c60c.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN-result.7201a99b.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN-setting.8c2ce690.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN-user.81513cba.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/lang-zh-CN.72b79d71.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/js/user.badd730b.js (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/admin/logo.png (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/application.yml (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/main/resources/logback-boot.xml (100%)
create mode 100644 easy-retry-server/easy-retry-server-starter/src/main/resources/spring-configuration-metadata.json
rename easy-retry-server/{ => easy-retry-server-starter}/src/test/java/com/aizuda/easy/retry/server/Abstract.java (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/test/java/com/aizuda/easy/retry/server/ConfigVersionSyncHandlerTest.java (86%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/test/java/com/aizuda/easy/retry/server/XRetryServerApplicationTests.java (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/test/java/com/aizuda/easy/retry/server/mapper/RetryTaskMapperTest.java (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/test/java/com/aizuda/easy/retry/server/mapper/SystemConfigGroupMapperTest.java (100%)
rename easy-retry-server/{ => easy-retry-server-starter}/src/test/java/com/aizuda/easy/retry/server/support/generator/id/SegmentIdGeneratorTest.java (91%)
create mode 100644 easy-retry-server/easy-retry-server-web/.gitignore
create mode 100644 easy-retry-server/easy-retry-server-web/pom.xml
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/annotation/LoginRequired.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/annotation/LoginUser.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/annotation/RoleEnum.java (100%)
create mode 100644 easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/config/EasyRetryServerWebAutoConfiguration.java
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/controller/DashBoardController.java (96%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/controller/GroupConfigController.java (95%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/controller/NotifyConfigController.java (93%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryDeadLetterController.java (96%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskController.java (83%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskLogController.java (96%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/controller/SceneConfigSceneController.java (95%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/controller/SystemInfoController.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/controller/SystemUserController.java (97%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/controller/WebController.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/interceptor/AuthenticationInterceptor.java (98%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/interceptor/CORSInterceptor.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/interceptor/LoginUserMethodArgumentResolver.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/interceptor/XRetryWebMvcConfigurerAdapter.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/base/BaseQueryVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/base/PageResult.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/enums/DateTypeEnum.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchDeleteRetryDeadLetterVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchDeleteRetryTaskVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchRollBackRetryDeadLetterVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/GenerateRetryIdempotentIdVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/GroupConfigQueryVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/GroupConfigRequestVO.java (97%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/ManualTriggerTaskRequestVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/ParseLogsVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryDeadLetterQueryVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskLogMessageQueryVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskLogQueryVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskQueryVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskSaveRequestVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskUpdateExecutorNameRequestVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskUpdateStatusRequestVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/SceneConfigQueryVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/ServerNodeQueryVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/SystemUserQueryVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/request/SystemUserRequestVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/response/ActivePodQuantityResponseVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/response/DispatchQuantityResponseVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/response/GroupConfigResponseVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/response/NotifyConfigResponseVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryDeadLetterResponseVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskLogMessageResponseVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskLogResponseVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskResponseVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/response/SceneConfigResponseVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/response/SceneQuantityRankResponseVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/response/ServerNodeResponseVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/response/SystemUserResponseVO.java (100%)
rename easy-retry-server/{ => easy-retry-server-web}/src/main/java/com/aizuda/easy/retry/server/web/model/response/TaskQuantityResponseVO.java (100%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/DashBoardService.java (95%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/GroupConfigService.java (94%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/NotifyConfigService.java (85%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/RetryDeadLetterService.java (94%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/RetryTaskLogService.java (94%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/RetryTaskService.java (77%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/SceneConfigService.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/SystemUserService.java (95%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/DispatchQuantityResponseVOConverter.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/GroupConfigConverter.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/GroupConfigResponseVOConverter.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/NotifyConfigConverter.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/NotifyConfigResponseVOConverter.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/RetryDeadLetterResponseVOConverter.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/RetryTaskLogResponseVOConverter.java (94%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/RetryTaskResponseVOConverter.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/SceneConfigConverter.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/SceneConfigResponseVOConverter.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/SceneQuantityRankResponseVOConverter.java (81%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/ServerNodeResponseVOConverter.java (83%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/SystemUserResponseVOConverter.java (91%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/convert/TaskContextConverter.java (82%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/impl/DashBoardServiceImpl.java (92%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/impl/GroupConfigServiceImpl.java (95%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/impl/NotifyConfigServiceImpl.java (82%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/impl/RetryDeadLetterServiceImpl.java (89%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/impl/RetryTaskLogServiceImpl.java (85%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/impl/RetryTaskServiceImpl.java (87%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/impl/SceneConfigServiceImpl.java (87%)
rename easy-retry-server/{src/main/java/com/aizuda/easy/retry/server => easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web}/service/impl/SystemUserServiceImpl.java (96%)
create mode 100644 easy-retry-server/easy-retry-server-web/src/main/resources/META-INF/spring.factories
delete mode 100644 easy-retry-server/src/main/resources/admin/css/app.f24fef3a.css
delete mode 100644 easy-retry-server/src/main/resources/spring-configuration-metadata.json
diff --git a/easy-retry-server/easy-retry-server-common/.gitignore b/easy-retry-server/easy-retry-server-common/.gitignore
new file mode 100644
index 00000000..5ff6309b
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-common/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/easy-retry-server/easy-retry-server-common/pom.xml b/easy-retry-server/easy-retry-server-common/pom.xml
new file mode 100644
index 00000000..2befcf2a
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-common/pom.xml
@@ -0,0 +1,110 @@
+
+
+ 4.0.0
+
+ com.aizuda
+ easy-retry-server
+ ${revision}
+ ../pom.xml
+
+
+ easy-retry-server-common
+ jar
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ com.typesafe.akka
+ akka-actor-typed_2.13
+
+
+ com.typesafe.akka
+ akka-actor-testkit-typed_2.13
+
+
+ com.google.guava
+ guava
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ com.aizuda
+ easy-retry-common-core
+
+
+ io.netty
+ netty-transport
+
+
+ io.netty
+ netty-codec-http
+
+
+ com.aizuda
+ easy-retry-common-client-api
+
+
+ com.aizuda
+ easy-retry-common-client-api
+
+
+ com.aizuda
+ easy-retry-datasource-template
+
+
+ org.perf4j
+ perf4j
+
+
+ org.mapstruct
+ mapstruct
+
+
+ org.mapstruct
+ mapstruct-processor
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+ com.squareup.okhttp3
+ okhttp
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ none
+ execute
+
+
+
+
+ repackage
+
+
+
+
+
+
+
+
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/ClientLoadBalance.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/ClientLoadBalance.java
similarity index 83%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/ClientLoadBalance.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/ClientLoadBalance.java
index e140c75c..6f2922c5 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/ClientLoadBalance.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/ClientLoadBalance.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support;
+package com.aizuda.easy.retry.server.common;
import java.util.TreeSet;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/Lifecycle.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/Lifecycle.java
similarity index 83%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/Lifecycle.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/Lifecycle.java
index 930c7064..90f53fc2 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/Lifecycle.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/Lifecycle.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support;
+package com.aizuda.easy.retry.server.common;
/**
* 组件生命周期
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/Register.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/Register.java
similarity index 78%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/Register.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/Register.java
index cdec3f92..2dbf40b0 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/Register.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/Register.java
@@ -1,7 +1,7 @@
-package com.aizuda.easy.retry.server.support;
+package com.aizuda.easy.retry.server.common;
import com.aizuda.easy.retry.common.core.enums.NodeTypeEnum;
-import com.aizuda.easy.retry.server.support.register.RegisterContext;
+import com.aizuda.easy.retry.server.common.register.RegisterContext;
/**
* @author www.byteblogs.com
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RegisterNodeInfoConverter.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/RegisterNodeInfoConverter.java
similarity index 79%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RegisterNodeInfoConverter.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/RegisterNodeInfoConverter.java
index d0c05aa3..645d322b 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RegisterNodeInfoConverter.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/RegisterNodeInfoConverter.java
@@ -1,6 +1,6 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.common;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
import com.aizuda.easy.retry.template.datasource.persistence.po.ServerNode;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/ServerLoadBalance.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/ServerLoadBalance.java
similarity index 62%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/ServerLoadBalance.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/ServerLoadBalance.java
index aa8b8fae..1c74b420 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/ServerLoadBalance.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/ServerLoadBalance.java
@@ -14,32 +14,33 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.aizuda.easy.retry.server.support;
+package com.aizuda.easy.retry.server.common;
import java.util.List;
/**
- * Strategy Algorithm for message allocating between consumers
+ * 服务端负载均衡分配算法
*/
-public interface ServerLoadBalance {
+public interface ServerLoadBalance {
/**
- * Allocating by consumer id
+ * 将waitAllocateList通过算法分配到currentCID中
*
- * @param currentCID current consumer id
- * @param groupNameList consumer set in current consumer group
- * @return The allocate result of given strategy
+ * @param currentCID 当前节点的id
+ * @param waitAllocateList 待分配的列表
+ * @param nodeList 节点信息
+ * @return 当前节点负责消费的桶数量
*/
- List allocate(
- final String currentCID,
- final List groupNameList,
- final List serverList
+ List allocate(
+ String currentCID,
+ List waitAllocateList,
+ List nodeList
);
/**
- * Algorithm name
+ * 算法名称
*
- * @return The strategy name
+ * @return 策略名称
*/
String getName();
}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/akka/ActorGenerator.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/akka/ActorGenerator.java
similarity index 74%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/akka/ActorGenerator.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/akka/ActorGenerator.java
index 2796c99e..56cd0118 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/akka/ActorGenerator.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/akka/ActorGenerator.java
@@ -1,17 +1,9 @@
-package com.aizuda.easy.retry.server.akka;
+package com.aizuda.easy.retry.server.common.akka;
import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import com.aizuda.easy.retry.common.core.context.SpringContext;
-import com.aizuda.easy.retry.server.server.RequestHandlerActor;
-import com.aizuda.easy.retry.server.support.dispatch.actor.exec.ExecCallbackUnitActor;
-import com.aizuda.easy.retry.server.support.dispatch.actor.exec.ExecUnitActor;
-import com.aizuda.easy.retry.server.support.dispatch.actor.log.LogActor;
-import com.aizuda.easy.retry.server.support.dispatch.actor.result.FailureActor;
-import com.aizuda.easy.retry.server.support.dispatch.actor.result.FinishActor;
-import com.aizuda.easy.retry.server.support.dispatch.actor.result.NoRetryActor;
-import com.aizuda.easy.retry.server.support.dispatch.actor.scan.ScanCallbackGroupActor;
-import com.aizuda.easy.retry.server.support.dispatch.actor.scan.ScanGroupActor;
+
/**
* Actor生成器
@@ -21,6 +13,17 @@ import com.aizuda.easy.retry.server.support.dispatch.actor.scan.ScanGroupActor;
*/
public class ActorGenerator {
+ public static final String SCAN_CALLBACK_GROUP_ACTOR = "ScanCallbackGroupActor";
+ public static final String SCAN_RETRY_GROUP_ACTOR = "ScanGroupActor";
+ public static final String FINISH_ACTOR = "FinishActor";
+ public static final String FAILURE_ACTOR = "FailureActor";
+ public static final String NO_RETRY_ACTOR = "NoRetryActor";
+ public static final String EXEC_CALLBACK_UNIT_ACTOR = "ExecCallbackUnitActor";
+ public static final String EXEC_UNIT_ACTOR = "ExecUnitActor";
+ public static final String LOG_ACTOR = "LogActor";
+ public static final String REQUEST_HANDLER_ACTOR = "RequestHandlerActor";
+
+
private ActorGenerator() {}
/**
@@ -29,7 +32,7 @@ public class ActorGenerator {
* @return actor 引用
*/
public static ActorRef finishActor() {
- return getDispatchResultActorSystem().actorOf(getSpringExtension().props(FinishActor.BEAN_NAME));
+ return getDispatchResultActorSystem().actorOf(getSpringExtension().props(FINISH_ACTOR));
}
/**
@@ -38,7 +41,7 @@ public class ActorGenerator {
* @return actor 引用
*/
public static ActorRef failureActor() {
- return getDispatchResultActorSystem().actorOf(getSpringExtension().props(FailureActor.BEAN_NAME));
+ return getDispatchResultActorSystem().actorOf(getSpringExtension().props(FAILURE_ACTOR));
}
/**
@@ -47,7 +50,7 @@ public class ActorGenerator {
* @return actor 引用
*/
public static ActorRef noRetryActor() {
- return getDispatchResultActorSystem().actorOf(getSpringExtension().props(NoRetryActor.BEAN_NAME));
+ return getDispatchResultActorSystem().actorOf(getSpringExtension().props(NO_RETRY_ACTOR));
}
/**
@@ -56,7 +59,7 @@ public class ActorGenerator {
* @return actor 引用
*/
public static ActorRef execCallbackUnitActor() {
- return getDispatchResultActorSystem().actorOf(getSpringExtension().props(ExecCallbackUnitActor.BEAN_NAME));
+ return getDispatchResultActorSystem().actorOf(getSpringExtension().props(EXEC_CALLBACK_UNIT_ACTOR));
}
/**
@@ -65,7 +68,7 @@ public class ActorGenerator {
* @return actor 引用
*/
public static ActorRef execUnitActor() {
- return getDispatchExecUnitActorSystem().actorOf(getSpringExtension().props(ExecUnitActor.BEAN_NAME));
+ return getDispatchExecUnitActorSystem().actorOf(getSpringExtension().props(EXEC_UNIT_ACTOR));
}
/**
@@ -74,7 +77,7 @@ public class ActorGenerator {
* @return actor 引用
*/
public static ActorRef scanGroupActor() {
- return getDispatchRetryActorSystem().actorOf(getSpringExtension().props(ScanGroupActor.BEAN_NAME));
+ return getDispatchRetryActorSystem().actorOf(getSpringExtension().props(SCAN_RETRY_GROUP_ACTOR));
}
/**
@@ -83,7 +86,7 @@ public class ActorGenerator {
* @return actor 引用
*/
public static ActorRef scanCallbackGroupActor() {
- return getDispatchRetryActorSystem().actorOf(getSpringExtension().props(ScanCallbackGroupActor.BEAN_NAME));
+ return getDispatchRetryActorSystem().actorOf(getSpringExtension().props(SCAN_CALLBACK_GROUP_ACTOR));
}
/**
@@ -92,7 +95,7 @@ public class ActorGenerator {
* @return actor 引用
*/
public static ActorRef logActor() {
- return getLogActorSystemSystem().actorOf(getSpringExtension().props(LogActor.BEAN_NAME));
+ return getLogActorSystemSystem().actorOf(getSpringExtension().props(LOG_ACTOR));
}
/**
@@ -101,7 +104,7 @@ public class ActorGenerator {
* @return actor 引用
*/
public static ActorRef requestHandlerActor() {
- return getNettyActorSystem().actorOf(getSpringExtension().props(RequestHandlerActor.BEAN_NAME));
+ return getNettyActorSystem().actorOf(getSpringExtension().props(REQUEST_HANDLER_ACTOR));
}
public static SpringExtension getSpringExtension() {
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/akka/AkkaConfiguration.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/akka/AkkaConfiguration.java
similarity index 98%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/akka/AkkaConfiguration.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/akka/AkkaConfiguration.java
index a4ccc52a..2864b868 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/akka/AkkaConfiguration.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/akka/AkkaConfiguration.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.akka;
+package com.aizuda.easy.retry.server.common.akka;
import akka.actor.ActorSystem;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/akka/SpringActorProducer.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/akka/SpringActorProducer.java
similarity index 96%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/akka/SpringActorProducer.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/akka/SpringActorProducer.java
index 147fca05..abe9640d 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/akka/SpringActorProducer.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/akka/SpringActorProducer.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.akka;
+package com.aizuda.easy.retry.server.common.akka;
import akka.actor.Actor;
import akka.actor.IndirectActorProducer;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/akka/SpringExtension.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/akka/SpringExtension.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/akka/SpringExtension.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/akka/SpringExtension.java
index da1dfaa3..3a167eb4 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/akka/SpringExtension.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/akka/SpringExtension.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.akka;
+package com.aizuda.easy.retry.server.common.akka;
import akka.actor.Extension;
import akka.actor.Props;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/client/ClientLoadBalanceConsistentHash.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/client/ClientLoadBalanceConsistentHash.java
similarity index 79%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/client/ClientLoadBalanceConsistentHash.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/client/ClientLoadBalanceConsistentHash.java
index ab3201a9..46877507 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/client/ClientLoadBalanceConsistentHash.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/client/ClientLoadBalanceConsistentHash.java
@@ -1,9 +1,9 @@
-package com.aizuda.easy.retry.server.support.allocate.client;
+package com.aizuda.easy.retry.server.common.allocate.client;
-import com.aizuda.easy.retry.server.support.allocate.common.ConsistentHashRouter;
-import com.aizuda.easy.retry.server.support.allocate.common.Node;
-import com.aizuda.easy.retry.server.enums.AllocationAlgorithmEnum;
-import com.aizuda.easy.retry.server.support.ClientLoadBalance;
+import com.aizuda.easy.retry.server.common.ClientLoadBalance;
+import com.aizuda.easy.retry.server.common.enums.AllocationAlgorithmEnum;
+import com.aizuda.easy.retry.server.common.allocate.common.ConsistentHashRouter;
+import com.aizuda.easy.retry.server.common.allocate.common.Node;
import java.util.ArrayList;
import java.util.Collection;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/client/ClientLoadBalanceLRU.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/client/ClientLoadBalanceLRU.java
similarity index 92%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/client/ClientLoadBalanceLRU.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/client/ClientLoadBalanceLRU.java
index 0eef8225..7d0722ee 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/client/ClientLoadBalanceLRU.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/client/ClientLoadBalanceLRU.java
@@ -1,6 +1,6 @@
-package com.aizuda.easy.retry.server.support.allocate.client;
+package com.aizuda.easy.retry.server.common.allocate.client;
-import com.aizuda.easy.retry.server.support.ClientLoadBalance;
+import com.aizuda.easy.retry.server.common.ClientLoadBalance;
import java.util.LinkedHashMap;
import java.util.Map;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/client/ClientLoadBalanceManager.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/client/ClientLoadBalanceManager.java
similarity index 89%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/client/ClientLoadBalanceManager.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/client/ClientLoadBalanceManager.java
index 2aebf75a..ccd38406 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/client/ClientLoadBalanceManager.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/client/ClientLoadBalanceManager.java
@@ -1,6 +1,6 @@
-package com.aizuda.easy.retry.server.support.allocate.client;
+package com.aizuda.easy.retry.server.common.allocate.client;
-import com.aizuda.easy.retry.server.support.ClientLoadBalance;
+import com.aizuda.easy.retry.server.common.ClientLoadBalance;
import lombok.Getter;
import org.springframework.stereotype.Component;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/client/ClientLoadBalanceRandom.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/client/ClientLoadBalanceRandom.java
similarity index 77%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/client/ClientLoadBalanceRandom.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/client/ClientLoadBalanceRandom.java
index 8308eb22..892bbb8e 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/client/ClientLoadBalanceRandom.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/client/ClientLoadBalanceRandom.java
@@ -1,7 +1,7 @@
-package com.aizuda.easy.retry.server.support.allocate.client;
+package com.aizuda.easy.retry.server.common.allocate.client;
-import com.aizuda.easy.retry.server.enums.AllocationAlgorithmEnum;
-import com.aizuda.easy.retry.server.support.ClientLoadBalance;
+import com.aizuda.easy.retry.server.common.ClientLoadBalance;
+import com.aizuda.easy.retry.server.common.enums.AllocationAlgorithmEnum;
import org.springframework.stereotype.Component;
import java.util.Random;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/common/ConsistentHashRouter.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/common/ConsistentHashRouter.java
similarity index 98%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/common/ConsistentHashRouter.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/common/ConsistentHashRouter.java
index f2c6ab42..8065fe8d 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/common/ConsistentHashRouter.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/common/ConsistentHashRouter.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.aizuda.easy.retry.server.support.allocate.common;
+package com.aizuda.easy.retry.server.common.allocate.common;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/common/HashFunction.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/common/HashFunction.java
similarity index 93%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/common/HashFunction.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/common/HashFunction.java
index 32e48dca..94b9cc49 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/common/HashFunction.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/common/HashFunction.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.aizuda.easy.retry.server.support.allocate.common;
+package com.aizuda.easy.retry.server.common.allocate.common;
/**
* Hash String to long value
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/common/Node.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/common/Node.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/common/Node.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/common/Node.java
index aaea2932..c54d543c 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/common/Node.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/common/Node.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.aizuda.easy.retry.server.support.allocate.common;
+package com.aizuda.easy.retry.server.common.allocate.common;
/**
* Represent a node which should be mapped to a hash ring
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/common/VirtualNode.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/common/VirtualNode.java
similarity index 90%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/common/VirtualNode.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/common/VirtualNode.java
index e2f6e908..ef455df3 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/common/VirtualNode.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/common/VirtualNode.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support.allocate.common;
+package com.aizuda.easy.retry.server.common.allocate.common;
public class VirtualNode implements Node {
final T physicalNode;
diff --git a/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/server/AllocateMessageQueueAveragely.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/server/AllocateMessageQueueAveragely.java
new file mode 100644
index 00000000..b3ea05f4
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/server/AllocateMessageQueueAveragely.java
@@ -0,0 +1,61 @@
+package com.aizuda.easy.retry.server.common.allocate.server;
+
+import com.aizuda.easy.retry.server.common.ServerLoadBalance;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 通过平均算法分配bucketList
+ *
+ * @author www.byteblogs.com
+ * @date 2021-03-01
+ */
+@SuppressWarnings({"squid:S3358"})
+public class AllocateMessageQueueAveragely implements ServerLoadBalance {
+
+ @Override
+ public List allocate(String currentCID, List bucketList, List serverList) {
+
+ List consumerBucket = new ArrayList<>();
+
+ // 找到当前消费者在消费者队列里面的下标
+ int index = serverList.indexOf(currentCID);
+
+ // 此处取余是为了判断队列与总消费者数的是否是整数倍 mod=0则是整数倍,否则不是
+ int mod = bucketList.size() % serverList.size();
+
+ /**
+ * 下面三目预算详解为
+ * 如果队列 <= 总消费者, 这种情况最简单就是平均每个消费者消费一个队列,averageSize = 1
+ * 如果队列 > 总消费者,这里分为 mod是否等于0,
+ * mod=0, 说明是队列与总消费者数是整数倍,只需要平均分配就好,eg:10/5=2
+ * mode>0, 说明队列与总消费者数不是整数倍,这里肯定有的消费者消费的多,eg: 10/8=1余2
+ * index < mod 这个意思是消费者的下标小于mod的, 多消费一个,eg: 队列10个 消费者8个 mod=2 ,那么下标0消费2个、下标1消费2个,其余消费1个
+ * index >= mod 其余消费者平均消费剩下的队列
+ */
+ int averageSize =
+ bucketList.size() <= serverList.size() ? 1
+ : (mod > 0 && index < mod ? bucketList.size() / serverList.size()
+ + 1 : bucketList.size() / serverList.size());
+
+ // 这里开始计算起始坐标
+ int startIndex = (mod > 0 && index < mod) ? index * averageSize : index * averageSize + mod;
+
+ /**
+ * 取最小值为消费队列的范围
+ * 这里需要说明,如果队列 < 消费者下标, range是一个小于0的数字,所以我们的消费者的数量应该是小于等队列数量,否则会造成资源浪费
+ */
+ int range = Math.min(averageSize, bucketList.size() - startIndex);
+ for (int i = 0; i < range; i++) {
+ consumerBucket.add(bucketList.get((startIndex + i) % bucketList.size()));
+ }
+
+ return consumerBucket;
+ }
+
+ @Override
+ public String getName() {
+ return "AVG";
+ }
+}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/server/AllocateMessageQueueConsistentHash.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/server/AllocateMessageQueueConsistentHash.java
similarity index 89%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/server/AllocateMessageQueueConsistentHash.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/server/AllocateMessageQueueConsistentHash.java
index 76f7273e..41443974 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/allocate/server/AllocateMessageQueueConsistentHash.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/allocate/server/AllocateMessageQueueConsistentHash.java
@@ -14,12 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.aizuda.easy.retry.server.support.allocate.server;
+package com.aizuda.easy.retry.server.common.allocate.server;
-import com.aizuda.easy.retry.server.support.allocate.common.ConsistentHashRouter;
-import com.aizuda.easy.retry.server.support.allocate.common.HashFunction;
-import com.aizuda.easy.retry.server.support.ServerLoadBalance;
-import com.aizuda.easy.retry.server.support.allocate.common.Node;
+import com.aizuda.easy.retry.server.common.ServerLoadBalance;
+import com.aizuda.easy.retry.server.common.allocate.common.ConsistentHashRouter;
+import com.aizuda.easy.retry.server.common.allocate.common.HashFunction;
+import com.aizuda.easy.retry.server.common.allocate.common.Node;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
@@ -27,9 +27,9 @@ import java.util.Collection;
import java.util.List;
/**
- * Consistent Hashing queue algorithm
+ * 通过一致性hash分配
*/
-public class AllocateMessageQueueConsistentHash implements ServerLoadBalance {
+public class AllocateMessageQueueConsistentHash implements ServerLoadBalance {
private final int virtualNodeCnt;
private final HashFunction customHashFunction;
diff --git a/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/cache/CacheConsumerBucketGroup.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/cache/CacheConsumerBucketGroup.java
new file mode 100644
index 00000000..51e78275
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/cache/CacheConsumerBucketGroup.java
@@ -0,0 +1,74 @@
+package com.aizuda.easy.retry.server.common.cache;
+
+import com.aizuda.easy.retry.common.core.log.LogUtils;
+import com.aizuda.easy.retry.server.common.Lifecycle;
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.ConcurrentMap;
+
+/**
+ * 当前POD负责消费的组
+ *
+ * @author www.byteblogs.com
+ * @date 2021-10-30
+ * @since 1.6.0
+ */
+@Component
+@Slf4j
+public class CacheConsumerBucketGroup implements Lifecycle {
+
+ private volatile List bucketList = new ArrayList<>();
+
+ /**
+ * 获取所有缓存
+ *
+ * @return 缓存对象
+ */
+ public static Set getAllConsumerGroupName() {
+ ConcurrentMap concurrentMap = CACHE.asMap();
+ return new HashSet<>(concurrentMap.values());
+
+ }
+
+ /**
+ * 无缓存时添加
+ * 有缓存时更新
+ *
+ * @return 缓存对象
+ */
+ public static synchronized void addOrUpdate(String groupName) {
+ LogUtils.info(log, "add consumer cache. groupName:[{}]", groupName);
+ CACHE.put(groupName, groupName);
+ }
+
+ public static void remove(String groupName) {
+ LogUtils.info(log, "Remove consumer cache. groupName:[{}]", groupName);
+ CACHE.invalidate(groupName);
+ }
+
+ public static void clear() {
+ CACHE.invalidateAll();
+ }
+
+ @Override
+ public void start() {
+ LogUtils.info(log, "CacheRegisterTable start");
+ CACHE = CacheBuilder.newBuilder()
+ // 设置并发级别为cpu核心数
+ .concurrencyLevel(Runtime.getRuntime().availableProcessors())
+ .build();
+ }
+
+ @Override
+ public void close() {
+ LogUtils.info(log, "CacheRegisterTable stop");
+ CACHE.invalidateAll();
+ }
+}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheConsumerGroup.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/cache/CacheConsumerGroup.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheConsumerGroup.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/cache/CacheConsumerGroup.java
index 70ccb9b5..948263c5 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheConsumerGroup.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/cache/CacheConsumerGroup.java
@@ -1,7 +1,7 @@
-package com.aizuda.easy.retry.server.support.cache;
+package com.aizuda.easy.retry.server.common.cache;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.support.Lifecycle;
+import com.aizuda.easy.retry.server.common.Lifecycle;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import lombok.extern.slf4j.Slf4j;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheGroup.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/cache/CacheGroup.java
similarity index 93%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheGroup.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/cache/CacheGroup.java
index d260ebd5..9c02dbde 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheGroup.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/cache/CacheGroup.java
@@ -1,7 +1,7 @@
-package com.aizuda.easy.retry.server.support.cache;
+package com.aizuda.easy.retry.server.common.cache;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.support.Lifecycle;
+import com.aizuda.easy.retry.server.common.Lifecycle;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import lombok.extern.slf4j.Slf4j;
@@ -9,7 +9,6 @@ import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Collections;
-import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.ConcurrentMap;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheRegisterTable.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/cache/CacheRegisterTable.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheRegisterTable.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/cache/CacheRegisterTable.java
index aa67fa72..1cc79674 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheRegisterTable.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/cache/CacheRegisterTable.java
@@ -1,9 +1,9 @@
-package com.aizuda.easy.retry.server.support.cache;
+package com.aizuda.easy.retry.server.common.cache;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
-import com.aizuda.easy.retry.server.service.convert.RegisterNodeInfoConverter;
-import com.aizuda.easy.retry.server.support.Lifecycle;
+import com.aizuda.easy.retry.server.common.Lifecycle;
+import com.aizuda.easy.retry.server.common.RegisterNodeInfoConverter;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
import com.aizuda.easy.retry.template.datasource.persistence.po.ServerNode;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
@@ -11,10 +11,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
-import java.time.LocalDateTime;
import java.util.Collections;
import java.util.Objects;
-import java.util.Optional;
import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.ConcurrentHashMap;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/RequestBuilder.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/RequestBuilder.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/RequestBuilder.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/RequestBuilder.java
index 5a3d1c3a..55f71c21 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/RequestBuilder.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/RequestBuilder.java
@@ -1,8 +1,7 @@
-package com.aizuda.easy.retry.server.client;
-
+package com.aizuda.easy.retry.server.common.client;
import cn.hutool.core.lang.Assert;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import java.lang.reflect.Proxy;
import java.util.Objects;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/RequestMethod.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/RequestMethod.java
similarity index 77%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/RequestMethod.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/RequestMethod.java
index dd0256b5..914b0cf6 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/RequestMethod.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/RequestMethod.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.client;
+package com.aizuda.easy.retry.server.common.client;
/**
* 请求类型
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/RpcClient.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/RpcClient.java
similarity index 75%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/RpcClient.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/RpcClient.java
index 20292cd5..eaf889a3 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/RpcClient.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/RpcClient.java
@@ -1,13 +1,13 @@
-package com.aizuda.easy.retry.server.client;
+package com.aizuda.easy.retry.server.common.client;
import com.aizuda.easy.retry.client.model.DispatchRetryDTO;
import com.aizuda.easy.retry.client.model.DispatchRetryResultDTO;
import com.aizuda.easy.retry.client.model.RetryCallbackDTO;
import com.aizuda.easy.retry.common.core.model.EasyRetryHeaders;
import com.aizuda.easy.retry.common.core.model.Result;
-import com.aizuda.easy.retry.server.client.annotation.Body;
-import com.aizuda.easy.retry.server.client.annotation.Header;
-import com.aizuda.easy.retry.server.client.annotation.Mapping;
+import com.aizuda.easy.retry.server.common.client.annotation.Body;
+import com.aizuda.easy.retry.server.common.client.annotation.Header;
+import com.aizuda.easy.retry.server.common.client.annotation.Mapping;
/**
* 调用客户端接口
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/RpcClientInvokeHandler.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/RpcClientInvokeHandler.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/RpcClientInvokeHandler.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/RpcClientInvokeHandler.java
index adac8280..e02d0809 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/RpcClientInvokeHandler.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/RpcClientInvokeHandler.java
@@ -1,24 +1,22 @@
-package com.aizuda.easy.retry.server.client;
+package com.aizuda.easy.retry.server.common.client;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.lang.Tuple;
import cn.hutool.core.util.URLUtil;
import com.aizuda.easy.retry.common.core.constant.SystemConstants;
import com.aizuda.easy.retry.common.core.context.SpringContext;
import com.aizuda.easy.retry.common.core.model.Result;
import com.aizuda.easy.retry.common.core.util.HostUtils;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
-import com.aizuda.easy.retry.server.client.annotation.Body;
-import com.aizuda.easy.retry.server.client.annotation.Header;
-import com.aizuda.easy.retry.server.client.annotation.Mapping;
-import com.aizuda.easy.retry.server.client.annotation.Param;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.support.cache.CacheRegisterTable;
-import com.aizuda.easy.retry.server.support.handler.ClientNodeAllocateHandler;
+import com.aizuda.easy.retry.server.common.cache.CacheRegisterTable;
+import com.aizuda.easy.retry.server.common.client.annotation.Body;
+import com.aizuda.easy.retry.server.common.client.annotation.Header;
+import com.aizuda.easy.retry.server.common.client.annotation.Mapping;
+import com.aizuda.easy.retry.server.common.client.annotation.Param;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.handler.ClientNodeAllocateHandler;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
-import org.jetbrains.annotations.NotNull;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
@@ -148,7 +146,6 @@ public class RpcClientInvokeHandler implements InvocationHandler {
return null;
}
- @NotNull
private StringBuilder getUrl(Mapping mapping, Map paramMap) {
StringBuilder url = new StringBuilder(MessageFormat.format(URL, hostIp, hostPort.toString(), contextPath));
url.append(mapping.path());
@@ -160,7 +157,6 @@ public class RpcClientInvokeHandler implements InvocationHandler {
return url;
}
- @NotNull
private ParseParasResult doParseParams(Method method, Object[] args) {
Object body = null;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/annotation/Body.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/annotation/Body.java
similarity index 86%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/annotation/Body.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/annotation/Body.java
index 52641574..a9ae07a4 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/annotation/Body.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/annotation/Body.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.client.annotation;
+package com.aizuda.easy.retry.server.common.client.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/annotation/Header.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/annotation/Header.java
similarity index 86%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/annotation/Header.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/annotation/Header.java
index a1bdd04d..5ec849fe 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/annotation/Header.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/annotation/Header.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.client.annotation;
+package com.aizuda.easy.retry.server.common.client.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/annotation/Mapping.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/annotation/Mapping.java
similarity index 79%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/annotation/Mapping.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/annotation/Mapping.java
index 5be2311a..432aeb59 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/annotation/Mapping.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/annotation/Mapping.java
@@ -1,6 +1,6 @@
-package com.aizuda.easy.retry.server.client.annotation;
+package com.aizuda.easy.retry.server.common.client.annotation;
-import com.aizuda.easy.retry.server.client.RequestMethod;
+import com.aizuda.easy.retry.server.common.client.RequestMethod;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/annotation/Param.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/annotation/Param.java
similarity index 87%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/annotation/Param.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/annotation/Param.java
index 90491bd2..246e2a46 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/client/annotation/Param.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/client/annotation/Param.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.client.annotation;
+package com.aizuda.easy.retry.server.common.client.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
diff --git a/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/EasyRetryServerCommonAutoConfiguration.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/EasyRetryServerCommonAutoConfiguration.java
new file mode 100644
index 00000000..d177ed6f
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/EasyRetryServerCommonAutoConfiguration.java
@@ -0,0 +1,16 @@
+package com.aizuda.easy.retry.server.common.config;
+
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * web访问模块
+ *
+ * @author: www.byteblogs.com
+ * @date : 2023-09-19 09:21
+ */
+@Configuration
+@ComponentScan("com.aizuda.easy.retry.server.common.*")
+public class EasyRetryServerCommonAutoConfiguration {
+
+}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/config/JacksonConfig.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/JacksonConfig.java
similarity index 90%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/config/JacksonConfig.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/JacksonConfig.java
index e1a7fcb2..e582427b 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/config/JacksonConfig.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/JacksonConfig.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.config;
+package com.aizuda.easy.retry.server.common.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
@@ -19,4 +19,4 @@ public class JacksonConfig {
return JsonUtil.JsonMapper.jacksonObjectMapper();
}
-}
\ No newline at end of file
+}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/config/RestTemplateConfig.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/RestTemplateConfig.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/config/RestTemplateConfig.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/RestTemplateConfig.java
index ecc375af..900394b3 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/config/RestTemplateConfig.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/RestTemplateConfig.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.config;
+package com.aizuda.easy.retry.server.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/config/SystemProperties.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/SystemProperties.java
similarity index 92%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/config/SystemProperties.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/SystemProperties.java
index 0b0cd8b2..86c551ef 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/config/SystemProperties.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/SystemProperties.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.config;
+package com.aizuda.easy.retry.server.common.config;
import com.aizuda.easy.retry.template.datasource.enums.DbTypeEnum;
import lombok.Data;
@@ -61,6 +61,11 @@ public class SystemProperties {
*/
private int loadBalanceCycleTime = 10;
+ /**
+ * 桶的总数量
+ */
+ private int bucketTotal = 128;
+
/**
* 回调配置
*/
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/dto/LockConfig.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/LockConfig.java
similarity index 92%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/dto/LockConfig.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/LockConfig.java
index 695a5d62..7d3daca7 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/dto/LockConfig.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/LockConfig.java
@@ -1,8 +1,7 @@
-package com.aizuda.easy.retry.server.dto;
+package com.aizuda.easy.retry.server.common.dto;
import cn.hutool.core.lang.Assert;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import lombok.Getter;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import java.time.Duration;
import java.time.LocalDateTime;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/dto/NettyHttpRequest.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/NettyHttpRequest.java
similarity index 85%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/dto/NettyHttpRequest.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/NettyHttpRequest.java
index 0ea4feed..567e0604 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/dto/NettyHttpRequest.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/NettyHttpRequest.java
@@ -1,11 +1,10 @@
-package com.aizuda.easy.retry.server.dto;
+package com.aizuda.easy.retry.server.common.dto;
import io.netty.channel.ChannelHandlerContext;
-import io.netty.handler.codec.http.FullHttpRequest;
import io.netty.handler.codec.http.HttpHeaders;
-import io.netty.handler.codec.http.HttpMethod;
import lombok.Builder;
import lombok.Data;
+import io.netty.handler.codec.http.HttpMethod;
/**
* netty客户端请求模型
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/dto/RegisterNodeInfo.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/RegisterNodeInfo.java
similarity index 78%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/dto/RegisterNodeInfo.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/RegisterNodeInfo.java
index 0e7dbd89..5203c71e 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/dto/RegisterNodeInfo.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/RegisterNodeInfo.java
@@ -1,7 +1,6 @@
-package com.aizuda.easy.retry.server.dto;
+package com.aizuda.easy.retry.server.common.dto;
import lombok.Data;
-import org.jetbrains.annotations.NotNull;
import java.time.LocalDateTime;
@@ -29,7 +28,7 @@ public class RegisterNodeInfo implements Comparable {
private String contextPath;
@Override
- public int compareTo(@NotNull RegisterNodeInfo info) {
+ public int compareTo(RegisterNodeInfo info) {
return hostId.compareTo(info.hostId);
}
}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/dto/ServerNodeExtAttrs.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/ServerNodeExtAttrs.java
similarity index 82%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/dto/ServerNodeExtAttrs.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/ServerNodeExtAttrs.java
index a463ef6f..afb90579 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/dto/ServerNodeExtAttrs.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/ServerNodeExtAttrs.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.dto;
+package com.aizuda.easy.retry.server.common.dto;
import lombok.Data;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/AllocationAlgorithmEnum.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/AllocationAlgorithmEnum.java
similarity index 85%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/AllocationAlgorithmEnum.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/AllocationAlgorithmEnum.java
index 76e57117..adf35c2b 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/AllocationAlgorithmEnum.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/AllocationAlgorithmEnum.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.enums;
+package com.aizuda.easy.retry.server.common.enums;
import lombok.Getter;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/DelayLevelEnum.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/DelayLevelEnum.java
similarity index 97%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/DelayLevelEnum.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/DelayLevelEnum.java
index e6347458..6956edef 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/DelayLevelEnum.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/DelayLevelEnum.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.enums;
+package com.aizuda.easy.retry.server.common.enums;
import lombok.Getter;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/IdGeneratorMode.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/IdGeneratorMode.java
similarity index 92%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/IdGeneratorMode.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/IdGeneratorMode.java
index e3f3188a..fb4f6dde 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/IdGeneratorMode.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/IdGeneratorMode.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.enums;
+package com.aizuda.easy.retry.server.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/TaskGeneratorScene.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/TaskGeneratorScene.java
similarity index 85%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/TaskGeneratorScene.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/TaskGeneratorScene.java
index 5b16e910..10a2394b 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/TaskGeneratorScene.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/TaskGeneratorScene.java
@@ -1,6 +1,6 @@
-package com.aizuda.easy.retry.server.enums;
+package com.aizuda.easy.retry.server.common.enums;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/TaskTypeEnum.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/TaskTypeEnum.java
similarity index 79%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/TaskTypeEnum.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/TaskTypeEnum.java
index c179f644..58dab5b0 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/enums/TaskTypeEnum.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/enums/TaskTypeEnum.java
@@ -1,7 +1,7 @@
-package com.aizuda.easy.retry.server.enums;
+package com.aizuda.easy.retry.server.common.enums;
import akka.actor.ActorRef;
-import com.aizuda.easy.retry.server.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/exception/EasyRetryServerException.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/exception/EasyRetryServerException.java
similarity index 88%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/exception/EasyRetryServerException.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/exception/EasyRetryServerException.java
index 733ed23a..44e3b569 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/exception/EasyRetryServerException.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/exception/EasyRetryServerException.java
@@ -1,4 +1,5 @@
-package com.aizuda.easy.retry.server.exception;
+package com.aizuda.easy.retry.server.common.exception;
+
import com.aizuda.easy.retry.common.core.exception.BaseEasyRetryException;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/IdGenerator.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/IdGenerator.java
similarity index 88%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/IdGenerator.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/IdGenerator.java
index 8f63f04f..75734752 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/IdGenerator.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/IdGenerator.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support.generator;
+package com.aizuda.easy.retry.server.common.generator.id;
/**
* 分布式Id生成器
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/id/Segment.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/Segment.java
similarity index 95%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/id/Segment.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/Segment.java
index e297d386..cf300da7 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/id/Segment.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/Segment.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support.generator.id;
+package com.aizuda.easy.retry.server.common.generator.id;
import java.util.concurrent.atomic.AtomicLong;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/id/SegmentBuffer.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/SegmentBuffer.java
similarity index 98%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/id/SegmentBuffer.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/SegmentBuffer.java
index 7008e465..69b8b984 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/id/SegmentBuffer.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/SegmentBuffer.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support.generator.id;
+package com.aizuda.easy.retry.server.common.generator.id;
import lombok.Data;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/id/SegmentIdGenerator.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/SegmentIdGenerator.java
similarity index 98%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/id/SegmentIdGenerator.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/SegmentIdGenerator.java
index 4013e5d6..4e181b12 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/id/SegmentIdGenerator.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/SegmentIdGenerator.java
@@ -1,11 +1,10 @@
-package com.aizuda.easy.retry.server.support.generator.id;
+package com.aizuda.easy.retry.server.common.generator.id;
-import com.aizuda.easy.retry.server.enums.IdGeneratorMode;
import com.aizuda.easy.retry.common.core.log.LogUtils;
+import com.aizuda.easy.retry.server.common.Lifecycle;
+import com.aizuda.easy.retry.server.common.enums.IdGeneratorMode;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.SequenceAllocMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.SequenceAlloc;
-import com.aizuda.easy.retry.server.support.Lifecycle;
-import com.aizuda.easy.retry.server.support.generator.IdGenerator;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.perf4j.StopWatch;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/id/SnowflakeIdGenerator.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/SnowflakeIdGenerator.java
similarity index 79%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/id/SnowflakeIdGenerator.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/SnowflakeIdGenerator.java
index 2b02c73f..a880f3a3 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/id/SnowflakeIdGenerator.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/generator/id/SnowflakeIdGenerator.java
@@ -1,9 +1,8 @@
-package com.aizuda.easy.retry.server.support.generator.id;
+package com.aizuda.easy.retry.server.common.generator.id;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
-import com.aizuda.easy.retry.server.enums.IdGeneratorMode;
-import com.aizuda.easy.retry.server.support.generator.IdGenerator;
+import com.aizuda.easy.retry.server.common.enums.IdGeneratorMode;
import org.springframework.stereotype.Component;
/**
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ClientNodeAllocateHandler.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/ClientNodeAllocateHandler.java
similarity index 82%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ClientNodeAllocateHandler.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/ClientNodeAllocateHandler.java
index 10b8ed1e..dbf211af 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ClientNodeAllocateHandler.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/ClientNodeAllocateHandler.java
@@ -1,10 +1,10 @@
-package com.aizuda.easy.retry.server.support.handler;
+package com.aizuda.easy.retry.server.common.handler;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
-import com.aizuda.easy.retry.server.support.ClientLoadBalance;
-import com.aizuda.easy.retry.server.support.allocate.client.ClientLoadBalanceManager;
-import com.aizuda.easy.retry.server.support.cache.CacheRegisterTable;
+import com.aizuda.easy.retry.server.common.ClientLoadBalance;
+import com.aizuda.easy.retry.server.common.allocate.client.ClientLoadBalanceManager;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.common.cache.CacheRegisterTable;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.persistence.po.GroupConfig;
import lombok.extern.slf4j.Slf4j;
diff --git a/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/DistributeInstance.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/DistributeInstance.java
new file mode 100644
index 00000000..5bc9284f
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/DistributeInstance.java
@@ -0,0 +1,15 @@
+package com.aizuda.easy.retry.server.common.handler;
+
+import java.util.concurrent.CopyOnWriteArraySet;
+
+/**
+ * www.byteblogs.com
+ *
+ * @author: shuguang.zhang
+ * @date : 2023-09-21 09:26
+ */
+public class DistributeInstance {
+
+ private CopyOnWriteArraySet CONSUMER_BUCKET = new CopyOnWriteArraySet<>();
+
+}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/GetHttpRequestHandler.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/GetHttpRequestHandler.java
similarity index 92%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/GetHttpRequestHandler.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/GetHttpRequestHandler.java
index f4d61a73..add78217 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/GetHttpRequestHandler.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/GetHttpRequestHandler.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.server.handler;
+package com.aizuda.easy.retry.server.common.handler;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.net.url.UrlQuery;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/HttpRequestHandler.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/HttpRequestHandler.java
similarity index 89%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/HttpRequestHandler.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/HttpRequestHandler.java
index cc370ded..a066c42b 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/HttpRequestHandler.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/HttpRequestHandler.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.server.handler;
+package com.aizuda.easy.retry.server.common.handler;
import cn.hutool.core.net.url.UrlBuilder;
import io.netty.handler.codec.http.HttpHeaders;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/PostHttpRequestHandler.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/PostHttpRequestHandler.java
similarity index 92%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/PostHttpRequestHandler.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/PostHttpRequestHandler.java
index 92fa2b81..97bb0f7e 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/PostHttpRequestHandler.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/PostHttpRequestHandler.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.server.handler;
+package com.aizuda.easy.retry.server.common.handler;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.net.url.UrlQuery;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ServerNodeBalance.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/ServerNodeBalance.java
similarity index 89%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ServerNodeBalance.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/ServerNodeBalance.java
index 1f1c4c38..e482ce89 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ServerNodeBalance.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/handler/ServerNodeBalance.java
@@ -1,20 +1,22 @@
-package com.aizuda.easy.retry.server.support.handler;
+package com.aizuda.easy.retry.server.common.handler;
import com.aizuda.easy.retry.common.core.enums.NodeTypeEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.config.SystemProperties;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
-import com.aizuda.easy.retry.server.support.Lifecycle;
-import com.aizuda.easy.retry.server.support.allocate.server.AllocateMessageQueueConsistentHash;
-import com.aizuda.easy.retry.server.support.cache.CacheConsumerGroup;
-import com.aizuda.easy.retry.server.support.cache.CacheGroup;
-import com.aizuda.easy.retry.server.support.cache.CacheRegisterTable;
-import com.aizuda.easy.retry.server.support.register.ServerRegister;
+import com.aizuda.easy.retry.server.common.Lifecycle;
+import com.aizuda.easy.retry.server.common.allocate.server.AllocateMessageQueueAveragely;
+import com.aizuda.easy.retry.server.common.allocate.server.AllocateMessageQueueConsistentHash;
+import com.aizuda.easy.retry.server.common.cache.CacheConsumerGroup;
+import com.aizuda.easy.retry.server.common.cache.CacheGroup;
+import com.aizuda.easy.retry.server.common.config.SystemProperties;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.common.cache.CacheRegisterTable;
+import com.aizuda.easy.retry.server.common.register.ServerRegister;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.ServerNodeMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.GroupConfig;
import com.aizuda.easy.retry.template.datasource.persistence.po.ServerNode;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -30,6 +32,7 @@ import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
/**
* 负责处理组或者节点变化时,重新分配组在不同的节点上消费
@@ -49,13 +52,15 @@ public class ServerNodeBalance implements Lifecycle, Runnable {
@Autowired
protected AccessTemplate accessTemplate;
- private Thread THREAD = null;
+ private Thread thread = null;
@Autowired
protected ServerNodeMapper serverNodeMapper;
@Autowired
protected SystemProperties systemProperties;
+ private List bucketList;
+
/**
* 控制rebalance状态
*/
@@ -85,8 +90,8 @@ public class ServerNodeBalance implements Lifecycle, Runnable {
return;
}
- List allocate = new AllocateMessageQueueConsistentHash()
- .allocate(ServerRegister.CURRENT_CID, new ArrayList<>(allGroup), new ArrayList<>(podIpSet));
+ List allocate = new AllocateMessageQueueAveragely()
+ .allocate(ServerRegister.CURRENT_CID, bucketList, new ArrayList<>(podIpSet));
// 重新覆盖本地分配的组信息
for (String groupName : allocate) {
@@ -104,9 +109,16 @@ public class ServerNodeBalance implements Lifecycle, Runnable {
@Override
public void start() {
+
+ int bucketTotal = systemProperties.getBucketTotal();
+ bucketList = new ArrayList<>(bucketTotal);
+ for (int i = 1; i <= bucketTotal; i++) {
+ bucketList.add(i);
+ }
+
LogUtils.info(log, "ServerNodeBalance start");
- THREAD = new Thread(this, "server-node-balance");
- THREAD.start();
+ thread = new Thread(this, "server-node-balance");
+ thread.start();
}
private void removeNode(ConcurrentMap concurrentMap, Set remoteHostIds, Set localHostIds) {
@@ -160,7 +172,7 @@ public class ServerNodeBalance implements Lifecycle, Runnable {
public void close() {
// 停止定时任务
- THREAD.interrupt();
+ thread.interrupt();
LogUtils.info(log, "ServerNodeBalance start. ");
int i = serverNodeMapper
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/register/AbstractRegister.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/register/AbstractRegister.java
similarity index 90%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/register/AbstractRegister.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/register/AbstractRegister.java
index 31bcc9c9..f600ed4b 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/register/AbstractRegister.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/register/AbstractRegister.java
@@ -1,9 +1,9 @@
-package com.aizuda.easy.retry.server.support.register;
+package com.aizuda.easy.retry.server.common.register;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.support.Lifecycle;
-import com.aizuda.easy.retry.server.support.Register;
-import com.aizuda.easy.retry.server.support.cache.CacheRegisterTable;
+import com.aizuda.easy.retry.server.common.Lifecycle;
+import com.aizuda.easy.retry.server.common.Register;
+import com.aizuda.easy.retry.server.common.cache.CacheRegisterTable;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.ServerNodeMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.ServerNode;
import lombok.extern.slf4j.Slf4j;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/register/ClientRegister.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/register/ClientRegister.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/register/ClientRegister.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/register/ClientRegister.java
index 98949522..cd0d4e6d 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/register/ClientRegister.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/register/ClientRegister.java
@@ -1,9 +1,9 @@
-package com.aizuda.easy.retry.server.support.register;
+package com.aizuda.easy.retry.server.common.register;
import com.aizuda.easy.retry.common.core.enums.NodeTypeEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.support.cache.CacheConsumerGroup;
-import com.aizuda.easy.retry.server.support.cache.CacheRegisterTable;
+import com.aizuda.easy.retry.server.common.cache.CacheConsumerGroup;
+import com.aizuda.easy.retry.server.common.cache.CacheRegisterTable;
import com.aizuda.easy.retry.template.datasource.persistence.po.ServerNode;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/register/RegisterContext.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/register/RegisterContext.java
similarity index 88%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/register/RegisterContext.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/register/RegisterContext.java
index fad44785..9f209234 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/register/RegisterContext.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/register/RegisterContext.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support.register;
+package com.aizuda.easy.retry.server.common.register;
import lombok.Data;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/register/ServerRegister.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/register/ServerRegister.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/register/ServerRegister.java
rename to easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/register/ServerRegister.java
index e962b1c0..5644b0a7 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/register/ServerRegister.java
+++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/register/ServerRegister.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support.register;
+package com.aizuda.easy.retry.server.common.register;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
@@ -7,10 +7,10 @@ import com.aizuda.easy.retry.common.core.enums.NodeTypeEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.common.core.util.HostUtils;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
-import com.aizuda.easy.retry.server.config.SystemProperties;
-import com.aizuda.easy.retry.server.dto.ServerNodeExtAttrs;
-import com.aizuda.easy.retry.server.support.Register;
-import com.aizuda.easy.retry.server.support.handler.ServerNodeBalance;
+import com.aizuda.easy.retry.server.common.Register;
+import com.aizuda.easy.retry.server.common.config.SystemProperties;
+import com.aizuda.easy.retry.server.common.dto.ServerNodeExtAttrs;
+import com.aizuda.easy.retry.server.common.handler.ServerNodeBalance;
import com.aizuda.easy.retry.template.datasource.persistence.po.ServerNode;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/easy-retry-server/easy-retry-server-common/src/main/resources/META-INF/spring.factories b/easy-retry-server/easy-retry-server-common/src/main/resources/META-INF/spring.factories
new file mode 100644
index 00000000..8a90ec75
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-common/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,2 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ com.aizuda.easy.retry.server.common.config.EasyRetryServerCommonAutoConfiguration
diff --git a/easy-retry-server/easy-retry-server-common/src/main/resources/spring-configuration-metadata.json b/easy-retry-server/easy-retry-server-common/src/main/resources/spring-configuration-metadata.json
new file mode 100644
index 00000000..44672dd5
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-common/src/main/resources/spring-configuration-metadata.json
@@ -0,0 +1,18 @@
+{
+ "groups": [
+ {
+ "name": "easy-retry",
+ "type": "com.aizuda.easy.retry.server.common.config.SystemProperties",
+ "sourceType": "com.aizuda.easy.retry.server.common.config.SystemProperties"
+ }
+ ],
+ "properties": [
+ {
+ "name": "easy-retry.callback",
+ "type": "com.aizuda.easy.retry.server.common.config.SystemProperties$Callback",
+ "defaultValue": "30",
+ "description": "服务端的地址,若服务端集群部署则此处配置域名",
+ "sourceType": "com.aizuda.easy.retry.server.common.config.SystemProperties$Callback"
+ }
+ ]
+}
diff --git a/easy-retry-server/easy-retry-server-job-task/.gitignore b/easy-retry-server/easy-retry-server-job-task/.gitignore
new file mode 100644
index 00000000..5ff6309b
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-job-task/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/easy-retry-server/easy-retry-server-job-task/pom.xml b/easy-retry-server/easy-retry-server-job-task/pom.xml
new file mode 100644
index 00000000..21341a4a
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-job-task/pom.xml
@@ -0,0 +1,41 @@
+
+
+ 4.0.0
+
+ com.aizuda
+ easy-retry-server
+ ${revision}
+ ../pom.xml
+
+
+ easy-retry-server-job-task
+ jar
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ none
+ execute
+
+
+
+
+ repackage
+
+
+
+
+
+
+
diff --git a/easy-retry-server/easy-retry-server-retry-task/.gitignore b/easy-retry-server/easy-retry-server-retry-task/.gitignore
new file mode 100644
index 00000000..5ff6309b
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-retry-task/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/easy-retry-server/easy-retry-server-retry-task/pom.xml b/easy-retry-server/easy-retry-server-retry-task/pom.xml
new file mode 100644
index 00000000..c2019e6c
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-retry-task/pom.xml
@@ -0,0 +1,81 @@
+
+
+ 4.0.0
+
+ com.aizuda
+ easy-retry-server
+ ${revision}
+ ../pom.xml
+
+
+ easy-retry-server-retry-task
+ jar
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+
+ com.aizuda
+ easy-retry-server-common
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.projectlombok
+ lombok
+
+
+ com.aizuda
+ easy-retry-common-server-api
+
+
+ com.aizuda
+ easy-retry-datasource-template
+
+
+ com.aizuda
+ easy-retry-common-client-api
+
+
+ org.mapstruct
+ mapstruct
+
+
+ org.mapstruct
+ mapstruct-processor
+
+
+ com.github.rholder
+ guava-retrying
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ none
+ execute
+
+
+
+
+ repackage
+
+
+
+
+
+
+
+
diff --git a/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/config/EasyRetryServerRetryTaskAutoConfiguration.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/config/EasyRetryServerRetryTaskAutoConfiguration.java
new file mode 100644
index 00000000..4566f2d0
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/config/EasyRetryServerRetryTaskAutoConfiguration.java
@@ -0,0 +1,16 @@
+package com.aizuda.easy.retry.server.retry.task.config;
+
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * web访问模块
+ *
+ * @author: www.byteblogs.com
+ * @date : 2023-09-19 09:21
+ */
+@Configuration
+@ComponentScan("com.aizuda.easy.retry.server.retry.task.*")
+public class EasyRetryServerRetryTaskAutoConfiguration {
+
+}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/AbstractGenerator.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/AbstractGenerator.java
similarity index 92%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/AbstractGenerator.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/AbstractGenerator.java
index a1731b8a..cf665c1b 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/AbstractGenerator.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/AbstractGenerator.java
@@ -1,22 +1,21 @@
-package com.aizuda.easy.retry.server.support.generator.task;
+package com.aizuda.easy.retry.server.retry.task.generator.task;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Pair;
import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
+import com.aizuda.easy.retry.common.core.enums.StatusEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
-import com.aizuda.easy.retry.server.enums.DelayLevelEnum;
-import com.aizuda.easy.retry.server.enums.TaskTypeEnum;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.service.convert.RetryTaskConverter;
-import com.aizuda.easy.retry.server.service.convert.RetryTaskLogConverter;
-import com.aizuda.easy.retry.server.support.generator.IdGenerator;
-import com.aizuda.easy.retry.server.support.generator.TaskGenerator;
-import com.aizuda.easy.retry.server.support.strategy.WaitStrategies;
+import com.aizuda.easy.retry.server.common.enums.DelayLevelEnum;
+import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.generator.id.IdGenerator;
+import com.aizuda.easy.retry.server.retry.task.support.RetryTaskConverter;
+import com.aizuda.easy.retry.server.retry.task.support.RetryTaskLogConverter;
+import com.aizuda.easy.retry.server.retry.task.support.strategy.WaitStrategies;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.access.TaskAccess;
-import com.aizuda.easy.retry.common.core.enums.StatusEnum;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.RetryTaskLogMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.GroupConfig;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
@@ -25,7 +24,6 @@ import com.aizuda.easy.retry.template.datasource.persistence.po.SceneConfig;
import com.aizuda.easy.retry.template.datasource.utils.RequestDataHelper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -125,8 +123,8 @@ public abstract class AbstractGenerator implements TaskGenerator {
retryTask.setCreateDt(now);
retryTask.setUpdateDt(now);
- if (StringUtils.isBlank(retryTask.getExtAttrs())) {
- retryTask.setExtAttrs(StringUtils.EMPTY);
+ if (StrUtil.isBlank(retryTask.getExtAttrs())) {
+ retryTask.setExtAttrs(StrUtil.EMPTY);
}
retryTask.setNextTriggerAt(WaitStrategies.randomWait(1, TimeUnit.SECONDS, 60, TimeUnit.SECONDS).computeRetryTime(null));
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/ClientReportRetryGenerator.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/ClientReportRetryGenerator.java
similarity index 81%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/ClientReportRetryGenerator.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/ClientReportRetryGenerator.java
index 23184326..e2f75cdb 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/ClientReportRetryGenerator.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/ClientReportRetryGenerator.java
@@ -1,7 +1,7 @@
-package com.aizuda.easy.retry.server.support.generator.task;
+package com.aizuda.easy.retry.server.retry.task.generator.task;
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
-import com.aizuda.easy.retry.server.enums.TaskGeneratorScene;
+import com.aizuda.easy.retry.server.common.enums.TaskGeneratorScene;
import org.springframework.stereotype.Component;
/**
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/ManaBatchRetryGenerator.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/ManaBatchRetryGenerator.java
similarity index 83%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/ManaBatchRetryGenerator.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/ManaBatchRetryGenerator.java
index b4a24f31..839c59e3 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/ManaBatchRetryGenerator.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/ManaBatchRetryGenerator.java
@@ -1,7 +1,7 @@
-package com.aizuda.easy.retry.server.support.generator.task;
+package com.aizuda.easy.retry.server.retry.task.generator.task;
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
-import com.aizuda.easy.retry.server.enums.TaskGeneratorScene;
+import com.aizuda.easy.retry.server.common.enums.TaskGeneratorScene;
import org.springframework.stereotype.Component;
import java.util.Optional;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/ManaSingleRetryGenerator.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/ManaSingleRetryGenerator.java
similarity index 83%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/ManaSingleRetryGenerator.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/ManaSingleRetryGenerator.java
index b1be87b8..0e03f4ff 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/ManaSingleRetryGenerator.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/ManaSingleRetryGenerator.java
@@ -1,7 +1,7 @@
-package com.aizuda.easy.retry.server.support.generator.task;
+package com.aizuda.easy.retry.server.retry.task.generator.task;
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
-import com.aizuda.easy.retry.server.enums.TaskGeneratorScene;
+import com.aizuda.easy.retry.server.common.enums.TaskGeneratorScene;
import org.springframework.stereotype.Component;
import java.util.Optional;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/TaskContext.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/TaskContext.java
similarity index 93%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/TaskContext.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/TaskContext.java
index b56a9071..f14f2fc4 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/task/TaskContext.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/TaskContext.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support.generator.task;
+package com.aizuda.easy.retry.server.retry.task.generator.task;
import lombok.Data;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/TaskGenerator.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/TaskGenerator.java
similarity index 78%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/TaskGenerator.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/TaskGenerator.java
index e4ec3d76..65ed9ae4 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/generator/TaskGenerator.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/generator/task/TaskGenerator.java
@@ -1,6 +1,7 @@
-package com.aizuda.easy.retry.server.support.generator;
+package com.aizuda.easy.retry.server.retry.task.generator.task;
-import com.aizuda.easy.retry.server.support.generator.task.TaskContext;
+
+import com.aizuda.easy.retry.server.retry.task.generator.task.TaskContext;
/**
* 任务生成器
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryDeadLetterConverter.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service/RetryDeadLetterConverter.java
similarity index 93%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryDeadLetterConverter.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service/RetryDeadLetterConverter.java
index 30e0a648..018d3f7a 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryDeadLetterConverter.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service/RetryDeadLetterConverter.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.retry.task.service;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryDeadLetter;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/RetryService.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service/RetryService.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/RetryService.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service/RetryService.java
index aef2c879..793fdd0f 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/RetryService.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service/RetryService.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service;
+package com.aizuda.easy.retry.server.retry.task.service;
import com.aizuda.easy.retry.server.model.dto.RetryTaskDTO;
diff --git a/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service/TaskContextConverter.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service/TaskContextConverter.java
new file mode 100644
index 00000000..4fe238c7
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service/TaskContextConverter.java
@@ -0,0 +1,20 @@
+package com.aizuda.easy.retry.server.retry.task.service;
+
+import com.aizuda.easy.retry.server.model.dto.RetryTaskDTO;
+import com.aizuda.easy.retry.server.retry.task.generator.task.TaskContext;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @author www.byteblogs.com
+ * @date 2023-07-16 22:09:40
+ * @since 2.1.0
+ */
+@Mapper
+public interface TaskContextConverter {
+ TaskContextConverter INSTANCE = Mappers.getMapper(TaskContextConverter.class);
+
+ List toTaskContextInfo(List retryTasks);
+}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/RetryServiceImpl.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service/impl/RetryServiceImpl.java
similarity index 92%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/RetryServiceImpl.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service/impl/RetryServiceImpl.java
index a9f3864a..f46c5f0d 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/RetryServiceImpl.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/service/impl/RetryServiceImpl.java
@@ -1,32 +1,30 @@
-package com.aizuda.easy.retry.server.service.impl;
+package com.aizuda.easy.retry.server.retry.task.service.impl;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
+import com.aizuda.easy.retry.common.core.enums.StatusEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
-import com.aizuda.easy.retry.server.enums.DelayLevelEnum;
-import com.aizuda.easy.retry.server.enums.TaskTypeEnum;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.enums.DelayLevelEnum;
+import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.generator.id.IdGenerator;
import com.aizuda.easy.retry.server.model.dto.RetryTaskDTO;
-import com.aizuda.easy.retry.server.service.RetryService;
-import com.aizuda.easy.retry.server.service.convert.RetryDeadLetterConverter;
-import com.aizuda.easy.retry.server.service.convert.RetryTaskConverter;
-import com.aizuda.easy.retry.server.service.convert.RetryTaskLogConverter;
-import com.aizuda.easy.retry.server.support.generator.IdGenerator;
-import com.aizuda.easy.retry.server.support.strategy.WaitStrategies;
-import com.aizuda.easy.retry.server.support.strategy.WaitStrategies.WaitStrategyEnum;
+import com.aizuda.easy.retry.server.retry.task.service.RetryDeadLetterConverter;
+import com.aizuda.easy.retry.server.retry.task.service.RetryService;
+import com.aizuda.easy.retry.server.retry.task.support.RetryTaskConverter;
+import com.aizuda.easy.retry.server.retry.task.support.RetryTaskLogConverter;
+import com.aizuda.easy.retry.server.retry.task.support.strategy.WaitStrategies;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.access.ConfigAccess;
import com.aizuda.easy.retry.template.datasource.access.TaskAccess;
-import com.aizuda.easy.retry.common.core.enums.StatusEnum;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.RetryTaskLogMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.*;
import com.aizuda.easy.retry.template.datasource.utils.RequestDataHelper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -100,8 +98,8 @@ public class RetryServiceImpl implements RetryService {
retryTask.setCreateDt(now);
retryTask.setUpdateDt(now);
- if (StringUtils.isBlank(retryTask.getExtAttrs())) {
- retryTask.setExtAttrs(StringUtils.EMPTY);
+ if (StrUtil.isBlank(retryTask.getExtAttrs())) {
+ retryTask.setExtAttrs(StrUtil.EMPTY);
}
retryTask.setNextTriggerAt(
@@ -132,7 +130,7 @@ public class RetryServiceImpl implements RetryService {
sceneConfig.setGroupName(retryTaskDTO.getGroupName());
sceneConfig.setSceneName(retryTaskDTO.getSceneName());
sceneConfig.setSceneStatus(StatusEnum.YES.getStatus());
- sceneConfig.setBackOff(WaitStrategyEnum.DELAY_LEVEL.getBackOff());
+ sceneConfig.setBackOff(WaitStrategies.WaitStrategyEnum.DELAY_LEVEL.getBackOff());
sceneConfig.setMaxRetryCount(DelayLevelEnum._21.getLevel());
sceneConfig.setDescription("自动初始化场景");
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/FilterStrategy.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/FilterStrategy.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/FilterStrategy.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/FilterStrategy.java
index a6e37c08..ec93751a 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/FilterStrategy.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/FilterStrategy.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support;
+package com.aizuda.easy.retry.server.retry.task.support;
import cn.hutool.core.lang.Pair;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/IdempotentStrategy.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/IdempotentStrategy.java
similarity index 81%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/IdempotentStrategy.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/IdempotentStrategy.java
index c3fd49de..69766f1f 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/IdempotentStrategy.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/IdempotentStrategy.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support;
+package com.aizuda.easy.retry.server.retry.task.support;
/**
* 幂等策略
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/RetryContext.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/RetryContext.java
similarity index 87%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/RetryContext.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/RetryContext.java
index 1a2e796e..b9ec9f1e 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/RetryContext.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/RetryContext.java
@@ -1,8 +1,7 @@
-package com.aizuda.easy.retry.server.support;
+package com.aizuda.easy.retry.server.retry.task.support;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
-import com.aizuda.easy.retry.template.datasource.persistence.po.ServerNode;
import java.util.Set;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryTaskConverter.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/RetryTaskConverter.java
similarity index 77%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryTaskConverter.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/RetryTaskConverter.java
index f2c4229f..7cb278be 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryTaskConverter.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/RetryTaskConverter.java
@@ -1,10 +1,9 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.retry.task.support;
import com.aizuda.easy.retry.server.model.dto.RetryTaskDTO;
+import com.aizuda.easy.retry.server.retry.task.generator.task.TaskContext;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryDeadLetter;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
-import com.aizuda.easy.retry.server.support.generator.task.TaskContext;
-import com.aizuda.easy.retry.server.web.model.request.RetryTaskSaveRequestVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
@@ -30,7 +29,7 @@ public interface RetryTaskConverter {
})
RetryTask toRetryTask(RetryDeadLetter retryDeadLetter);
- RetryTask toRetryTask(RetryTaskSaveRequestVO retryTaskSaveRequestVO);
+// RetryTask toRetryTask(RetryTaskSaveRequestVO retryTaskSaveRequestVO);
List toRetryTaskList(List retryTaskDTOList);
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryTaskLogConverter.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/RetryTaskLogConverter.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryTaskLogConverter.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/RetryTaskLogConverter.java
index af512990..817083f5 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryTaskLogConverter.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/RetryTaskLogConverter.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.retry.task.support;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTaskLog;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/Schedule.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/Schedule.java
similarity index 70%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/Schedule.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/Schedule.java
index 219f2504..0939554c 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/Schedule.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/Schedule.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support;
+package com.aizuda.easy.retry.server.retry.task.support;
/**
* @author: www.byteblogs.com
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/StopStrategy.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/StopStrategy.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/StopStrategy.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/StopStrategy.java
index b6f09958..fdc53144 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/StopStrategy.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/StopStrategy.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support;
+package com.aizuda.easy.retry.server.retry.task.support;
/**
* 重试停止策略
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/WaitStrategy.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/WaitStrategy.java
similarity index 87%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/WaitStrategy.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/WaitStrategy.java
index 451d663b..f42045ab 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/WaitStrategy.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/WaitStrategy.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support;
+package com.aizuda.easy.retry.server.retry.task.support;
import java.time.LocalDateTime;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheGroupRateLimiter.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/cache/CacheGroupRateLimiter.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheGroupRateLimiter.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/cache/CacheGroupRateLimiter.java
index 782e9762..480b1de5 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheGroupRateLimiter.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/cache/CacheGroupRateLimiter.java
@@ -1,10 +1,10 @@
-package com.aizuda.easy.retry.server.support.cache;
+package com.aizuda.easy.retry.server.retry.task.support.cache;
+import com.aizuda.easy.retry.common.core.log.LogUtils;
+import com.aizuda.easy.retry.server.common.Lifecycle;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.util.concurrent.RateLimiter;
-import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.support.Lifecycle;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheGroupScanActor.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/cache/CacheGroupScanActor.java
similarity index 88%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheGroupScanActor.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/cache/CacheGroupScanActor.java
index 0e4a990a..16a1c61c 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheGroupScanActor.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/cache/CacheGroupScanActor.java
@@ -1,11 +1,11 @@
-package com.aizuda.easy.retry.server.support.cache;
+package com.aizuda.easy.retry.server.retry.task.support.cache;
import akka.actor.ActorRef;
-import com.aizuda.easy.retry.server.enums.TaskTypeEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
+import com.aizuda.easy.retry.server.common.Lifecycle;
+import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
-import com.aizuda.easy.retry.server.support.Lifecycle;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheLockRecord.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/cache/CacheLockRecord.java
similarity index 92%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheLockRecord.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/cache/CacheLockRecord.java
index 7e5f0730..c022dd13 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/cache/CacheLockRecord.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/cache/CacheLockRecord.java
@@ -1,7 +1,7 @@
-package com.aizuda.easy.retry.server.support.cache;
+package com.aizuda.easy.retry.server.retry.task.support.cache;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.support.Lifecycle;
+import com.aizuda.easy.retry.server.common.Lifecycle;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import lombok.extern.slf4j.Slf4j;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/context/CallbackRetryContext.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/context/CallbackRetryContext.java
similarity index 72%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/context/CallbackRetryContext.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/context/CallbackRetryContext.java
index 3400954c..e3556118 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/context/CallbackRetryContext.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/context/CallbackRetryContext.java
@@ -1,12 +1,10 @@
-package com.aizuda.easy.retry.server.support.context;
+package com.aizuda.easy.retry.server.retry.task.support.context;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.WaitStrategy;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
-import com.aizuda.easy.retry.template.datasource.persistence.po.ServerNode;
-import com.aizuda.easy.retry.server.support.RetryContext;
-import com.aizuda.easy.retry.server.support.WaitStrategy;
import lombok.Data;
-import lombok.Getter;
import java.util.Objects;
import java.util.Set;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/context/MaxAttemptsPersistenceRetryContext.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/context/MaxAttemptsPersistenceRetryContext.java
similarity index 78%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/context/MaxAttemptsPersistenceRetryContext.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/context/MaxAttemptsPersistenceRetryContext.java
index 50e2d08d..447dc076 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/context/MaxAttemptsPersistenceRetryContext.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/context/MaxAttemptsPersistenceRetryContext.java
@@ -1,10 +1,9 @@
-package com.aizuda.easy.retry.server.support.context;
+package com.aizuda.easy.retry.server.retry.task.support.context;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.WaitStrategy;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
-import com.aizuda.easy.retry.template.datasource.persistence.po.ServerNode;
-import com.aizuda.easy.retry.server.support.RetryContext;
-import com.aizuda.easy.retry.server.support.WaitStrategy;
import lombok.Data;
import lombok.Getter;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/DispatchService.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/DispatchService.java
similarity index 89%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/DispatchService.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/DispatchService.java
index 5e01af12..720735e8 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/DispatchService.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/DispatchService.java
@@ -1,17 +1,17 @@
-package com.aizuda.easy.retry.server.support.dispatch;
+package com.aizuda.easy.retry.server.retry.task.support.dispatch;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.config.SystemProperties;
-import com.aizuda.easy.retry.server.enums.TaskTypeEnum;
+import com.aizuda.easy.retry.server.common.Lifecycle;
+import com.aizuda.easy.retry.server.common.config.SystemProperties;
+import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
+import com.aizuda.easy.retry.server.common.cache.CacheConsumerGroup;
+import com.aizuda.easy.retry.server.retry.task.support.cache.CacheGroupRateLimiter;
+import com.aizuda.easy.retry.server.retry.task.support.cache.CacheGroupScanActor;
+import com.aizuda.easy.retry.server.common.handler.ServerNodeBalance;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.ServerNodeMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.GroupConfig;
import com.aizuda.easy.retry.template.datasource.persistence.po.ServerNode;
-import com.aizuda.easy.retry.server.support.Lifecycle;
-import com.aizuda.easy.retry.server.support.cache.CacheConsumerGroup;
-import com.aizuda.easy.retry.server.support.cache.CacheGroupRateLimiter;
-import com.aizuda.easy.retry.server.support.cache.CacheGroupScanActor;
-import com.aizuda.easy.retry.server.support.handler.ServerNodeBalance;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.cache.Cache;
import com.google.common.util.concurrent.RateLimiter;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/ScanTaskDTO.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/ScanTaskDTO.java
similarity index 73%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/ScanTaskDTO.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/ScanTaskDTO.java
index 76aa8721..e2a15e26 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/ScanTaskDTO.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/ScanTaskDTO.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support.dispatch;
+package com.aizuda.easy.retry.server.retry.task.support.dispatch;
import lombok.Data;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/exec/ExecCallbackUnitActor.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/exec/ExecCallbackUnitActor.java
similarity index 83%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/exec/ExecCallbackUnitActor.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/exec/ExecCallbackUnitActor.java
index ebf63e93..d3ddaf3f 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/exec/ExecCallbackUnitActor.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/exec/ExecCallbackUnitActor.java
@@ -1,29 +1,30 @@
-package com.aizuda.easy.retry.server.support.dispatch.actor.exec;
+package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.exec;
import akka.actor.AbstractActor;
import akka.actor.ActorRef;
import cn.hutool.core.lang.Assert;
+import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.client.model.RetryCallbackDTO;
-import com.aizuda.easy.retry.server.akka.ActorGenerator;
-import com.aizuda.easy.retry.server.client.RequestBuilder;
-import com.aizuda.easy.retry.server.client.RpcClient;
-import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
-import com.aizuda.easy.retry.template.datasource.access.TaskAccess;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
import com.aizuda.easy.retry.common.core.enums.StatusEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.common.core.model.Result;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.common.client.RequestBuilder;
+import com.aizuda.easy.retry.server.common.client.RpcClient;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.retry.task.support.IdempotentStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.context.CallbackRetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.log.RetryTaskLogDTO;
+import com.aizuda.easy.retry.server.retry.task.support.handler.CallbackRetryTaskHandler;
+import com.aizuda.easy.retry.server.retry.task.support.retry.RetryExecutor;
+import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
+import com.aizuda.easy.retry.template.datasource.access.TaskAccess;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
-import com.aizuda.easy.retry.server.support.IdempotentStrategy;
-import com.aizuda.easy.retry.server.support.context.CallbackRetryContext;
-import com.aizuda.easy.retry.server.support.dispatch.actor.log.RetryTaskLogDTO;
-import com.aizuda.easy.retry.server.support.handler.CallbackRetryTaskHandler;
-import com.aizuda.easy.retry.server.support.retry.RetryExecutor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
@@ -40,13 +41,11 @@ import java.util.concurrent.Callable;
* @date 2021-10-30
* @since 1.5.0
*/
-@Component(ExecCallbackUnitActor.BEAN_NAME)
+@Component(ActorGenerator.EXEC_CALLBACK_UNIT_ACTOR)
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Slf4j
public class ExecCallbackUnitActor extends AbstractActor {
- public static final String BEAN_NAME = "ExecCallbackUnitActor";
-
@Autowired
@Qualifier("bitSetIdempotentStrategyHandler")
private IdempotentStrategy idempotentStrategy;
@@ -75,7 +74,7 @@ public class ExecCallbackUnitActor extends AbstractActor {
String message = "回调客户端成功";
if (StatusEnum.YES.getStatus() != result.getStatus()) {
- if (StringUtils.isNotBlank(result.getMessage())) {
+ if (StrUtil.isNotBlank(result.getMessage())) {
message = result.getMessage();
} else {
message = "回调客户端失败: 异常信息为空";
@@ -93,7 +92,7 @@ public class ExecCallbackUnitActor extends AbstractActor {
}catch (Exception e) {
LogUtils.error(log, "callback client error. retryTask:[{}]", JsonUtil.toJsonString(retryTask), e);
- retryTaskLog.setMessage(StringUtils.isBlank(e.getMessage()) ? StringUtils.EMPTY : e.getMessage());
+ retryTaskLog.setMessage(StringUtils.isBlank(e.getMessage()) ? StrUtil.EMPTY : e.getMessage());
} finally {
// 清除幂等标识位
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/exec/ExecUnitActor.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/exec/ExecUnitActor.java
similarity index 86%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/exec/ExecUnitActor.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/exec/ExecUnitActor.java
index 1b688199..894d5241 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/exec/ExecUnitActor.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/exec/ExecUnitActor.java
@@ -1,27 +1,27 @@
-package com.aizuda.easy.retry.server.support.dispatch.actor.exec;
+package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.exec;
import akka.actor.AbstractActor;
import akka.actor.ActorRef;
+import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.client.model.DispatchRetryDTO;
import com.aizuda.easy.retry.client.model.DispatchRetryResultDTO;
import com.aizuda.easy.retry.common.core.constant.SystemConstants;
import com.aizuda.easy.retry.common.core.enums.RetryResultStatusEnum;
+import com.aizuda.easy.retry.common.core.enums.StatusEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.common.core.model.EasyRetryHeaders;
import com.aizuda.easy.retry.common.core.model.Result;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
-import com.aizuda.easy.retry.server.akka.ActorGenerator;
-import com.aizuda.easy.retry.server.client.RequestBuilder;
-import com.aizuda.easy.retry.server.client.RpcClient;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
-import com.aizuda.easy.retry.common.core.enums.StatusEnum;
+import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.common.client.RequestBuilder;
+import com.aizuda.easy.retry.server.common.client.RpcClient;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.retry.task.support.IdempotentStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.context.MaxAttemptsPersistenceRetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.log.RetryTaskLogDTO;
+import com.aizuda.easy.retry.server.retry.task.support.retry.RetryExecutor;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
-import com.aizuda.easy.retry.server.support.IdempotentStrategy;
-import com.aizuda.easy.retry.server.support.context.MaxAttemptsPersistenceRetryContext;
-import com.aizuda.easy.retry.server.support.dispatch.actor.log.RetryTaskLogDTO;
-import com.aizuda.easy.retry.server.support.retry.RetryExecutor;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
@@ -39,14 +39,11 @@ import java.util.concurrent.Callable;
* @date 2021-10-30
* @since 2.0
*/
-@Component("ExecUnitActor")
+@Component(ActorGenerator.EXEC_UNIT_ACTOR)
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Slf4j
public class ExecUnitActor extends AbstractActor {
- public static final String BEAN_NAME = "ExecUnitActor";
- public static final String URL = "http://{0}:{1}/{2}/retry/dispatch/v1";
-
@Autowired
@Qualifier("bitSetIdempotentStrategyHandler")
private IdempotentStrategy idempotentStrategy;
@@ -74,7 +71,7 @@ public class ExecUnitActor extends AbstractActor {
// 回调接口请求成功,处理返回值
if (StatusEnum.YES.getStatus() != result.getStatus()) {
- if (StringUtils.isNotBlank(result.getMessage())) {
+ if (StrUtil.isNotBlank(result.getMessage())) {
retryTaskLog.setMessage(result.getMessage());
} else {
retryTaskLog.setMessage("客户端执行失败: 异常信息为空");
@@ -84,7 +81,7 @@ public class ExecUnitActor extends AbstractActor {
result.setData(data);
if (Objects.nonNull(data)) {
if (RetryResultStatusEnum.FAILURE.getStatus().equals(data.getStatusCode())) {
- if (StringUtils.isNotBlank(data.getExceptionMsg())) {
+ if (StrUtil.isNotBlank(data.getExceptionMsg())) {
retryTaskLog.setMessage(data.getExceptionMsg());
} else {
retryTaskLog.setMessage("客户端重试失败: 异常信息为空");
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/log/LogActor.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/log/LogActor.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/log/LogActor.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/log/LogActor.java
index bfee5633..8d471604 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/log/LogActor.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/log/LogActor.java
@@ -1,14 +1,15 @@
-package com.aizuda.easy.retry.server.support.dispatch.actor.log;
+package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.log;
import akka.actor.AbstractActor;
+import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
+import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.RetryTaskLogMapper;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.RetryTaskLogMessageMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTaskLog;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTaskLogMessage;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
@@ -23,13 +24,11 @@ import java.time.LocalDateTime;
* @date : 2023-06-16 11:33
* @since 2.0.0
*/
-@Component(LogActor.BEAN_NAME)
+@Component(ActorGenerator.LOG_ACTOR)
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Slf4j
public class LogActor extends AbstractActor {
- public static final String BEAN_NAME = "LogActor";
-
@Autowired
private RetryTaskLogMessageMapper retryTaskLogMessageMapper;
@Autowired
@@ -69,7 +68,7 @@ public class LogActor extends AbstractActor {
retryTaskLogMessage.setGroupName(retryTaskLogDTO.getGroupName());
String errorMessage = retryTaskLogDTO.getMessage();
retryTaskLogMessage.setMessage(
- StringUtils.isBlank(errorMessage) ? StringUtils.EMPTY : errorMessage);
+ StrUtil.isBlank(errorMessage) ? StrUtil.EMPTY : errorMessage);
retryTaskLogMessage.setCreateDt(LocalDateTime.now());
retryTaskLogMessageMapper.insert(retryTaskLogMessage);
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/log/RetryTaskLogDTO.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/log/RetryTaskLogDTO.java
similarity index 85%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/log/RetryTaskLogDTO.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/log/RetryTaskLogDTO.java
index 65f70b60..d56180fd 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/log/RetryTaskLogDTO.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/log/RetryTaskLogDTO.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support.dispatch.actor.log;
+package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.log;
import lombok.Data;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/result/FailureActor.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/result/FailureActor.java
similarity index 87%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/result/FailureActor.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/result/FailureActor.java
index 246dbc9f..cf029e05 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/result/FailureActor.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/result/FailureActor.java
@@ -1,16 +1,16 @@
-package com.aizuda.easy.retry.server.support.dispatch.actor.result;
+package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.result;
import akka.actor.AbstractActor;
import akka.actor.ActorRef;
import cn.hutool.core.lang.Assert;
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.akka.ActorGenerator;
-import com.aizuda.easy.retry.server.config.SystemProperties;
-import com.aizuda.easy.retry.server.enums.TaskTypeEnum;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.support.dispatch.actor.log.RetryTaskLogDTO;
-import com.aizuda.easy.retry.server.support.handler.CallbackRetryTaskHandler;
+import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.common.config.SystemProperties;
+import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.log.RetryTaskLogDTO;
+import com.aizuda.easy.retry.server.retry.task.support.handler.CallbackRetryTaskHandler;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import com.aizuda.easy.retry.template.datasource.persistence.po.SceneConfig;
@@ -32,13 +32,11 @@ import java.time.LocalDateTime;
* @date 2021-10-30
* @since 2.0
*/
-@Component("FailureActor")
+@Component(ActorGenerator.FAILURE_ACTOR)
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Slf4j
public class FailureActor extends AbstractActor {
- public static final String BEAN_NAME = "FailureActor";
-
@Autowired
private AccessTemplate accessTemplate;
@Autowired
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/result/FinishActor.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/result/FinishActor.java
similarity index 87%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/result/FinishActor.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/result/FinishActor.java
index 57d3b6c5..b4ffe947 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/result/FinishActor.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/result/FinishActor.java
@@ -1,14 +1,14 @@
-package com.aizuda.easy.retry.server.support.dispatch.actor.result;
+package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.result;
import akka.actor.AbstractActor;
import akka.actor.ActorRef;
import cn.hutool.core.lang.Assert;
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.akka.ActorGenerator;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.support.dispatch.actor.log.RetryTaskLogDTO;
-import com.aizuda.easy.retry.server.support.handler.CallbackRetryTaskHandler;
+import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.log.RetryTaskLogDTO;
+import com.aizuda.easy.retry.server.retry.task.support.handler.CallbackRetryTaskHandler;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import lombok.extern.slf4j.Slf4j;
@@ -31,7 +31,7 @@ import java.time.LocalDateTime;
* @date 2021-10-30
* @since 2.0
*/
-@Component("FinishActor")
+@Component(ActorGenerator.FINISH_ACTOR)
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Slf4j
public class FinishActor extends AbstractActor {
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/result/NoRetryActor.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/result/NoRetryActor.java
similarity index 81%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/result/NoRetryActor.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/result/NoRetryActor.java
index 90283ce6..9f6052d1 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/result/NoRetryActor.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/result/NoRetryActor.java
@@ -1,12 +1,13 @@
-package com.aizuda.easy.retry.server.support.dispatch.actor.result;
+package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.result;
import akka.actor.AbstractActor;
import cn.hutool.core.lang.Assert;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.support.RetryContext;
-import com.aizuda.easy.retry.server.support.WaitStrategy;
-import com.aizuda.easy.retry.server.support.retry.RetryExecutor;
+import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.WaitStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.retry.RetryExecutor;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import lombok.extern.slf4j.Slf4j;
@@ -24,7 +25,7 @@ import java.time.LocalDateTime;
* @date : 2022-04-14 16:11
* @since 1.0.0
*/
-@Component(NoRetryActor.BEAN_NAME)
+@Component(ActorGenerator.NO_RETRY_ACTOR)
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Slf4j
public class NoRetryActor extends AbstractActor {
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/AbstractScanGroup.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/scan/AbstractScanGroup.java
similarity index 90%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/AbstractScanGroup.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/scan/AbstractScanGroup.java
index 00220b23..a4e84116 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/AbstractScanGroup.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/scan/AbstractScanGroup.java
@@ -1,17 +1,17 @@
-package com.aizuda.easy.retry.server.support.dispatch.actor.scan;
+package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.scan;
import akka.actor.AbstractActor;
import akka.actor.ActorRef;
import cn.hutool.core.lang.Pair;
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.config.SystemProperties;
-import com.aizuda.easy.retry.server.support.IdempotentStrategy;
-import com.aizuda.easy.retry.server.support.RetryContext;
-import com.aizuda.easy.retry.server.support.dispatch.DispatchService;
-import com.aizuda.easy.retry.server.support.dispatch.ScanTaskDTO;
-import com.aizuda.easy.retry.server.support.handler.ClientNodeAllocateHandler;
-import com.aizuda.easy.retry.server.support.retry.RetryExecutor;
+import com.aizuda.easy.retry.server.common.config.SystemProperties;
+import com.aizuda.easy.retry.server.retry.task.support.IdempotentStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.dispatch.DispatchService;
+import com.aizuda.easy.retry.server.retry.task.support.dispatch.ScanTaskDTO;
+import com.aizuda.easy.retry.server.common.handler.ClientNodeAllocateHandler;
+import com.aizuda.easy.retry.server.retry.task.support.retry.RetryExecutor;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanCallbackGroupActor.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/scan/ScanCallbackGroupActor.java
similarity index 77%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanCallbackGroupActor.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/scan/ScanCallbackGroupActor.java
index 044f3a5b..880d997b 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanCallbackGroupActor.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/scan/ScanCallbackGroupActor.java
@@ -1,24 +1,23 @@
-package com.aizuda.easy.retry.server.support.dispatch.actor.scan;
+package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.scan;
import akka.actor.ActorRef;
-import com.aizuda.easy.retry.server.enums.TaskTypeEnum;
import com.aizuda.easy.retry.common.core.model.Result;
-import com.aizuda.easy.retry.server.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
+import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.WaitStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.context.CallbackRetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.retry.RetryBuilder;
+import com.aizuda.easy.retry.server.retry.task.support.retry.RetryExecutor;
+import com.aizuda.easy.retry.server.retry.task.support.strategy.FilterStrategies;
+import com.aizuda.easy.retry.server.retry.task.support.strategy.StopStrategies;
+import com.aizuda.easy.retry.server.retry.task.support.strategy.WaitStrategies;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
-import com.aizuda.easy.retry.server.support.RetryContext;
-import com.aizuda.easy.retry.server.support.WaitStrategy;
-import com.aizuda.easy.retry.server.support.context.CallbackRetryContext;
-import com.aizuda.easy.retry.server.support.retry.RetryBuilder;
-import com.aizuda.easy.retry.server.support.retry.RetryExecutor;
-import com.aizuda.easy.retry.server.support.strategy.FilterStrategies;
-import com.aizuda.easy.retry.server.support.strategy.StopStrategies;
-import com.aizuda.easy.retry.server.support.strategy.WaitStrategies;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
-import java.time.LocalDateTime;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
@@ -27,7 +26,7 @@ import java.util.concurrent.ConcurrentMap;
* @date 2021-10-30
* @since 1.5.0
*/
-@Component(ScanCallbackGroupActor.BEAN_NAME)
+@Component(ActorGenerator.SCAN_CALLBACK_GROUP_ACTOR)
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Slf4j
public class ScanCallbackGroupActor extends AbstractScanGroup {
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanGroupActor.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/scan/ScanGroupActor.java
similarity index 79%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanGroupActor.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/scan/ScanGroupActor.java
index 5d3a1b1e..4553237d 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanGroupActor.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/dispatch/actor/scan/ScanGroupActor.java
@@ -1,19 +1,19 @@
-package com.aizuda.easy.retry.server.support.dispatch.actor.scan;
+package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.scan;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.client.model.DispatchRetryResultDTO;
-import com.aizuda.easy.retry.server.enums.TaskTypeEnum;
import com.aizuda.easy.retry.common.core.model.Result;
-import com.aizuda.easy.retry.server.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
+import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.WaitStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.context.MaxAttemptsPersistenceRetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.retry.RetryBuilder;
+import com.aizuda.easy.retry.server.retry.task.support.retry.RetryExecutor;
+import com.aizuda.easy.retry.server.retry.task.support.strategy.FilterStrategies;
+import com.aizuda.easy.retry.server.retry.task.support.strategy.StopStrategies;
+import com.aizuda.easy.retry.server.retry.task.support.strategy.WaitStrategies;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
-import com.aizuda.easy.retry.server.support.RetryContext;
-import com.aizuda.easy.retry.server.support.WaitStrategy;
-import com.aizuda.easy.retry.server.support.context.MaxAttemptsPersistenceRetryContext;
-import com.aizuda.easy.retry.server.support.retry.RetryBuilder;
-import com.aizuda.easy.retry.server.support.retry.RetryExecutor;
-import com.aizuda.easy.retry.server.support.strategy.FilterStrategies;
-import com.aizuda.easy.retry.server.support.strategy.StopStrategies;
-import com.aizuda.easy.retry.server.support.strategy.WaitStrategies;
import com.aizuda.easy.retry.template.datasource.persistence.po.SceneConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
@@ -28,7 +28,7 @@ import java.util.concurrent.ConcurrentMap;
* @date 2021-10-30
* @since 2.0
*/
-@Component(ScanGroupActor.BEAN_NAME)
+@Component(ActorGenerator.SCAN_RETRY_GROUP_ACTOR)
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Slf4j
public class ScanGroupActor extends AbstractScanGroup {
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/CallbackRetryTaskHandler.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/handler/CallbackRetryTaskHandler.java
similarity index 87%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/CallbackRetryTaskHandler.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/handler/CallbackRetryTaskHandler.java
index 7fcc5912..31ad604c 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/CallbackRetryTaskHandler.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/handler/CallbackRetryTaskHandler.java
@@ -1,14 +1,14 @@
-package com.aizuda.easy.retry.server.support.handler;
+package com.aizuda.easy.retry.server.retry.task.support.handler;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
-import com.aizuda.easy.retry.server.config.SystemProperties;
-import com.aizuda.easy.retry.server.enums.TaskTypeEnum;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.service.convert.RetryTaskConverter;
-import com.aizuda.easy.retry.server.service.convert.RetryTaskLogConverter;
-import com.aizuda.easy.retry.server.support.strategy.WaitStrategies;
+import com.aizuda.easy.retry.server.common.config.SystemProperties;
+import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.retry.task.support.RetryTaskConverter;
+import com.aizuda.easy.retry.server.retry.task.support.RetryTaskLogConverter;
+import com.aizuda.easy.retry.server.retry.task.support.strategy.WaitStrategies;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.RetryTaskLogMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ConfigVersionSyncHandler.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/handler/ConfigVersionSyncHandler.java
similarity index 93%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ConfigVersionSyncHandler.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/handler/ConfigVersionSyncHandler.java
index 60f150ed..7a091272 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ConfigVersionSyncHandler.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/handler/ConfigVersionSyncHandler.java
@@ -1,12 +1,12 @@
-package com.aizuda.easy.retry.server.support.handler;
+package com.aizuda.easy.retry.server.retry.task.support.handler;
import cn.hutool.core.lang.Pair;
import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.common.core.model.Result;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.common.Lifecycle;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
import com.aizuda.easy.retry.server.model.dto.ConfigDTO;
-import com.aizuda.easy.retry.server.support.Lifecycle;
-import com.aizuda.easy.retry.server.support.cache.CacheRegisterTable;
+import com.aizuda.easy.retry.server.common.cache.CacheRegisterTable;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/ReportRetryInfoHttpRequestHandler.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/handler/ReportRetryInfoHttpRequestHandler.java
similarity index 88%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/ReportRetryInfoHttpRequestHandler.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/handler/ReportRetryInfoHttpRequestHandler.java
index 622df64c..32364d96 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/ReportRetryInfoHttpRequestHandler.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/handler/ReportRetryInfoHttpRequestHandler.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.server.handler;
+package com.aizuda.easy.retry.server.retry.task.support.handler;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.net.url.UrlQuery;
@@ -7,19 +7,14 @@ import com.aizuda.easy.retry.common.core.model.EasyRetryRequest;
import com.aizuda.easy.retry.common.core.model.NettyResult;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
import com.aizuda.easy.retry.common.core.enums.StatusEnum;
-import com.aizuda.easy.retry.server.enums.TaskGeneratorScene;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.enums.TaskGeneratorScene;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.handler.PostHttpRequestHandler;
import com.aizuda.easy.retry.server.model.dto.RetryTaskDTO;
-import com.aizuda.easy.retry.server.service.convert.TaskContextConverter;
-import com.aizuda.easy.retry.server.support.generator.TaskGenerator;
-import com.aizuda.easy.retry.server.support.generator.task.TaskContext;
-import com.github.rholder.retry.Attempt;
-import com.github.rholder.retry.RetryException;
-import com.github.rholder.retry.RetryListener;
-import com.github.rholder.retry.Retryer;
-import com.github.rholder.retry.RetryerBuilder;
-import com.github.rholder.retry.StopStrategies;
-import com.github.rholder.retry.WaitStrategies;
+import com.aizuda.easy.retry.server.retry.task.generator.task.TaskContext;
+import com.aizuda.easy.retry.server.retry.task.generator.task.TaskGenerator;
+import com.aizuda.easy.retry.server.retry.task.service.TaskContextConverter;
+import com.github.rholder.retry.*;
import io.netty.handler.codec.http.HttpHeaders;
import io.netty.handler.codec.http.HttpMethod;
import lombok.extern.slf4j.Slf4j;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/idempotent/BitSetIdempotentStrategyHandler.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/idempotent/BitSetIdempotentStrategyHandler.java
similarity index 85%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/idempotent/BitSetIdempotentStrategyHandler.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/idempotent/BitSetIdempotentStrategyHandler.java
index ea18bcac..f2b5b052 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/idempotent/BitSetIdempotentStrategyHandler.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/idempotent/BitSetIdempotentStrategyHandler.java
@@ -1,12 +1,10 @@
-package com.aizuda.easy.retry.server.support.idempotent;
+package com.aizuda.easy.retry.server.retry.task.support.idempotent;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.support.IdempotentStrategy;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.retry.task.support.IdempotentStrategy;
import org.springframework.stereotype.Component;
import java.util.BitSet;
-import java.util.HashMap;
-import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/listener/EndListener.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/listener/EndListener.java
similarity index 86%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/listener/EndListener.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/listener/EndListener.java
index cb3886f0..74a4660e 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/listener/EndListener.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/listener/EndListener.java
@@ -1,7 +1,7 @@
-package com.aizuda.easy.retry.server.support.listener;
+package com.aizuda.easy.retry.server.retry.task.support.listener;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.support.Lifecycle;
+import com.aizuda.easy.retry.server.common.Lifecycle;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/listener/StartListener.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/listener/StartListener.java
similarity index 87%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/listener/StartListener.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/listener/StartListener.java
index 12237f17..8d9922db 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/listener/StartListener.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/listener/StartListener.java
@@ -1,10 +1,9 @@
-package com.aizuda.easy.retry.server.support.listener;
+package com.aizuda.easy.retry.server.retry.task.support.listener;
import com.aizuda.easy.retry.common.core.constant.SystemConstants;
import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.common.core.util.EasyRetryVersion;
-import com.aizuda.easy.retry.server.support.Lifecycle;
-import com.aizuda.easy.retry.server.support.register.ServerRegister;
+import com.aizuda.easy.retry.server.common.Lifecycle;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.helpers.MessageFormatter;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/lock/AbstractLockProvider.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/lock/AbstractLockProvider.java
similarity index 74%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/lock/AbstractLockProvider.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/lock/AbstractLockProvider.java
index e51622d6..3a0cf6ae 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/lock/AbstractLockProvider.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/lock/AbstractLockProvider.java
@@ -1,9 +1,8 @@
-package com.aizuda.easy.retry.server.support.lock;
+package com.aizuda.easy.retry.server.retry.task.support.lock;
-import com.aizuda.easy.retry.server.dto.LockConfig;
-import com.aizuda.easy.retry.server.support.cache.CacheLockRecord;
+import com.aizuda.easy.retry.server.common.dto.LockConfig;
+import com.aizuda.easy.retry.server.retry.task.support.cache.CacheLockRecord;
import com.aizuda.easy.retry.template.datasource.enums.DbTypeEnum;
-import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
import java.util.List;
@@ -47,11 +46,11 @@ public abstract class AbstractLockProvider implements LockProvider {
return updateRecord(lockConfig);
}
- protected boolean doLock(@NotNull final LockConfig lockConfig) {
+ protected boolean doLock(final LockConfig lockConfig) {
return insertRecord(lockConfig);
}
- protected abstract boolean insertRecord(@NotNull final LockConfig lockConfig);
+ protected abstract boolean insertRecord(final LockConfig lockConfig);
- protected abstract boolean updateRecord(@NotNull final LockConfig lockConfig);
+ protected abstract boolean updateRecord(final LockConfig lockConfig);
}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/lock/JdbcLockProvider.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/lock/JdbcLockProvider.java
similarity index 90%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/lock/JdbcLockProvider.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/lock/JdbcLockProvider.java
index 3aef95fc..9db234b4 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/lock/JdbcLockProvider.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/lock/JdbcLockProvider.java
@@ -1,15 +1,14 @@
-package com.aizuda.easy.retry.server.support.lock;
+package com.aizuda.easy.retry.server.retry.task.support.lock;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.config.SystemProperties;
-import com.aizuda.easy.retry.server.dto.LockConfig;
+import com.aizuda.easy.retry.server.common.config.SystemProperties;
+import com.aizuda.easy.retry.server.common.dto.LockConfig;
+import com.aizuda.easy.retry.server.common.register.ServerRegister;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.DistributedLockMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.DistributedLock;
-import com.aizuda.easy.retry.server.support.register.ServerRegister;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.ConcurrencyFailureException;
import org.springframework.dao.DataIntegrityViolationException;
@@ -66,7 +65,7 @@ public class JdbcLockProvider extends AbstractLockProvider {
}
@Override
- protected boolean insertRecord(@NotNull final LockConfig lockConfig) {
+ protected boolean insertRecord(final LockConfig lockConfig) {
try {
LocalDateTime now = lockConfig.getCreateDt();
@@ -90,7 +89,7 @@ public class JdbcLockProvider extends AbstractLockProvider {
}
@Override
- protected boolean updateRecord(@NotNull final LockConfig lockConfig) {
+ protected boolean updateRecord(final LockConfig lockConfig) {
LocalDateTime now = lockConfig.getCreateDt();
DistributedLock distributedLock = new DistributedLock();
distributedLock.setLockedBy(ServerRegister.CURRENT_CID);
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/lock/LockProvider.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/lock/LockProvider.java
similarity index 67%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/lock/LockProvider.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/lock/LockProvider.java
index 4b67cba5..9229dae2 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/lock/LockProvider.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/lock/LockProvider.java
@@ -1,6 +1,7 @@
-package com.aizuda.easy.retry.server.support.lock;
+package com.aizuda.easy.retry.server.retry.task.support.lock;
-import com.aizuda.easy.retry.server.dto.LockConfig;
+
+import com.aizuda.easy.retry.server.common.dto.LockConfig;
/**
* @author www.byteblogs.com
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/retry/RetryBuilder.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/retry/RetryBuilder.java
similarity index 83%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/retry/RetryBuilder.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/retry/RetryBuilder.java
index a4b4a3c8..71298e4a 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/retry/RetryBuilder.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/retry/RetryBuilder.java
@@ -1,10 +1,10 @@
-package com.aizuda.easy.retry.server.support.retry;
+package com.aizuda.easy.retry.server.retry.task.support.retry;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.support.FilterStrategy;
-import com.aizuda.easy.retry.server.support.RetryContext;
-import com.aizuda.easy.retry.server.support.StopStrategy;
-import com.aizuda.easy.retry.server.support.WaitStrategy;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.retry.task.support.FilterStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.StopStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.WaitStrategy;
import org.springframework.util.CollectionUtils;
import java.util.*;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/retry/RetryExecutor.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/retry/RetryExecutor.java
similarity index 87%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/retry/RetryExecutor.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/retry/RetryExecutor.java
index 9ece91a5..f3124fa0 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/retry/RetryExecutor.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/retry/RetryExecutor.java
@@ -1,16 +1,15 @@
-package com.aizuda.easy.retry.server.support.retry;
+package com.aizuda.easy.retry.server.retry.task.support.retry;
import akka.actor.ActorRef;
import cn.hutool.core.lang.Pair;
-import com.aizuda.easy.retry.server.akka.ActorGenerator;
-import com.aizuda.easy.retry.server.support.FilterStrategy;
-import com.aizuda.easy.retry.server.support.RetryContext;
-import com.aizuda.easy.retry.server.support.StopStrategy;
-import com.aizuda.easy.retry.server.support.WaitStrategy;
+import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.retry.task.support.FilterStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.StopStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.WaitStrategy;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
-import java.util.Objects;
import java.util.concurrent.Callable;
/**
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/AbstractSchedule.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/AbstractSchedule.java
similarity index 84%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/AbstractSchedule.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/AbstractSchedule.java
index 74f0b522..04e6e145 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/AbstractSchedule.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/AbstractSchedule.java
@@ -1,12 +1,12 @@
-package com.aizuda.easy.retry.server.support.schedule;
+package com.aizuda.easy.retry.server.retry.task.support.schedule;
import cn.hutool.core.lang.Assert;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.config.SystemProperties;
-import com.aizuda.easy.retry.server.dto.LockConfig;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.support.Schedule;
-import com.aizuda.easy.retry.server.support.lock.LockProvider;
+import com.aizuda.easy.retry.server.common.config.SystemProperties;
+import com.aizuda.easy.retry.server.common.dto.LockConfig;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.retry.task.support.Schedule;
+import com.aizuda.easy.retry.server.retry.task.support.lock.LockProvider;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/ClearLogSchedule.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/ClearLogSchedule.java
similarity index 88%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/ClearLogSchedule.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/ClearLogSchedule.java
index c0a956a8..253bb3c4 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/ClearLogSchedule.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/ClearLogSchedule.java
@@ -1,20 +1,18 @@
-package com.aizuda.easy.retry.server.support.schedule;
+package com.aizuda.easy.retry.server.retry.task.support.schedule;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.config.SystemProperties;
+import com.aizuda.easy.retry.server.common.Lifecycle;
+import com.aizuda.easy.retry.server.common.config.SystemProperties;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.RetryTaskLogMapper;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.RetryTaskLogMessageMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTaskLog;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTaskLogMessage;
-import com.aizuda.easy.retry.server.support.Lifecycle;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.time.Duration;
-import java.time.Instant;
import java.time.LocalDateTime;
/**
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/OfflineNodeSchedule.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/OfflineNodeSchedule.java
similarity index 87%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/OfflineNodeSchedule.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/OfflineNodeSchedule.java
index b1420eea..fdb74995 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/OfflineNodeSchedule.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/OfflineNodeSchedule.java
@@ -1,11 +1,11 @@
-package com.aizuda.easy.retry.server.support.schedule;
+package com.aizuda.easy.retry.server.retry.task.support.schedule;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.common.Lifecycle;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.common.cache.CacheRegisterTable;
+import com.aizuda.easy.retry.server.common.register.ServerRegister;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.ServerNodeMapper;
-import com.aizuda.easy.retry.server.support.Lifecycle;
-import com.aizuda.easy.retry.server.support.cache.CacheRegisterTable;
-import com.aizuda.easy.retry.server.support.register.ServerRegister;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/RetryErrorMoreThresholdAlarmSchedule.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/RetryErrorMoreThresholdAlarmSchedule.java
similarity index 97%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/RetryErrorMoreThresholdAlarmSchedule.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/RetryErrorMoreThresholdAlarmSchedule.java
index cdf390a7..829516f4 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/RetryErrorMoreThresholdAlarmSchedule.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/RetryErrorMoreThresholdAlarmSchedule.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support.schedule;
+package com.aizuda.easy.retry.server.retry.task.support.schedule;
import com.aizuda.easy.retry.common.core.alarm.Alarm;
import com.aizuda.easy.retry.common.core.alarm.AlarmContext;
@@ -8,7 +8,7 @@ import com.aizuda.easy.retry.common.core.enums.NotifySceneEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.common.core.util.EnvironmentUtils;
import com.aizuda.easy.retry.common.core.util.HostUtils;
-import com.aizuda.easy.retry.server.support.Lifecycle;
+import com.aizuda.easy.retry.server.common.Lifecycle;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.access.TaskAccess;
import com.aizuda.easy.retry.template.datasource.persistence.po.GroupConfig;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/RetryTaskMoreThresholdAlarmSchedule.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/RetryTaskMoreThresholdAlarmSchedule.java
similarity index 97%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/RetryTaskMoreThresholdAlarmSchedule.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/RetryTaskMoreThresholdAlarmSchedule.java
index 8daffb4a..f24dde1f 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/RetryTaskMoreThresholdAlarmSchedule.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/RetryTaskMoreThresholdAlarmSchedule.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.support.schedule;
+package com.aizuda.easy.retry.server.retry.task.support.schedule;
import com.aizuda.easy.retry.common.core.alarm.Alarm;
import com.aizuda.easy.retry.common.core.alarm.AlarmContext;
@@ -9,7 +9,7 @@ import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.common.core.util.EnvironmentUtils;
import com.aizuda.easy.retry.common.core.util.HostUtils;
-import com.aizuda.easy.retry.server.support.Lifecycle;
+import com.aizuda.easy.retry.server.common.Lifecycle;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.persistence.po.GroupConfig;
import com.aizuda.easy.retry.template.datasource.persistence.po.NotifyConfig;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/RetryTaskSchedule.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/RetryTaskSchedule.java
similarity index 89%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/RetryTaskSchedule.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/RetryTaskSchedule.java
index be1d2382..5d50750e 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/schedule/RetryTaskSchedule.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/RetryTaskSchedule.java
@@ -1,8 +1,8 @@
-package com.aizuda.easy.retry.server.support.schedule;
+package com.aizuda.easy.retry.server.retry.task.support.schedule;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.service.RetryService;
-import com.aizuda.easy.retry.server.support.Lifecycle;
+import com.aizuda.easy.retry.server.common.Lifecycle;
+import com.aizuda.easy.retry.server.retry.task.service.RetryService;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/strategy/FilterStrategies.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/strategy/FilterStrategies.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/strategy/FilterStrategies.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/strategy/FilterStrategies.java
index 7eeaddf7..1c357458 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/strategy/FilterStrategies.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/strategy/FilterStrategies.java
@@ -1,19 +1,19 @@
-package com.aizuda.easy.retry.server.support.strategy;
+package com.aizuda.easy.retry.server.retry.task.support.strategy;
import cn.hutool.core.lang.Pair;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
-import com.aizuda.easy.retry.server.support.handler.ServerNodeBalance;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.google.common.util.concurrent.RateLimiter;
import com.aizuda.easy.retry.common.core.context.SpringContext;
import com.aizuda.easy.retry.common.core.log.LogUtils;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.retry.task.support.FilterStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.IdempotentStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.cache.CacheGroupRateLimiter;
+import com.aizuda.easy.retry.server.common.handler.ServerNodeBalance;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.ServerNodeMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import com.aizuda.easy.retry.template.datasource.persistence.po.ServerNode;
-import com.aizuda.easy.retry.server.support.FilterStrategy;
-import com.aizuda.easy.retry.server.support.IdempotentStrategy;
-import com.aizuda.easy.retry.server.support.RetryContext;
-import com.aizuda.easy.retry.server.support.cache.CacheGroupRateLimiter;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.google.common.util.concurrent.RateLimiter;
import lombok.extern.slf4j.Slf4j;
import java.text.MessageFormat;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/strategy/StopStrategies.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/strategy/StopStrategies.java
similarity index 92%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/strategy/StopStrategies.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/strategy/StopStrategies.java
index 3226bcb9..71ab6d5e 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/strategy/StopStrategies.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/strategy/StopStrategies.java
@@ -1,12 +1,12 @@
-package com.aizuda.easy.retry.server.support.strategy;
+package com.aizuda.easy.retry.server.retry.task.support.strategy;
import com.aizuda.easy.retry.client.model.DispatchRetryResultDTO;
import com.aizuda.easy.retry.common.core.enums.RetryResultStatusEnum;
import com.aizuda.easy.retry.common.core.enums.StatusEnum;
import com.aizuda.easy.retry.common.core.model.Result;
-import com.aizuda.easy.retry.server.support.RetryContext;
-import com.aizuda.easy.retry.server.support.StopStrategy;
-import com.aizuda.easy.retry.server.support.context.MaxAttemptsPersistenceRetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.StopStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.context.MaxAttemptsPersistenceRetryContext;
import java.util.Objects;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/strategy/WaitStrategies.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/strategy/WaitStrategies.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/strategy/WaitStrategies.java
rename to easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/strategy/WaitStrategies.java
index e88421e5..7caef01e 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/strategy/WaitStrategies.java
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/strategy/WaitStrategies.java
@@ -1,13 +1,13 @@
-package com.aizuda.easy.retry.server.support.strategy;
+package com.aizuda.easy.retry.server.retry.task.support.strategy;
import com.aizuda.easy.retry.common.core.context.SpringContext;
import com.aizuda.easy.retry.common.core.util.CronExpression;
-import com.aizuda.easy.retry.server.config.SystemProperties;
-import com.aizuda.easy.retry.server.enums.DelayLevelEnum;
-import com.aizuda.easy.retry.server.enums.TaskTypeEnum;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.support.RetryContext;
-import com.aizuda.easy.retry.server.support.WaitStrategy;
+import com.aizuda.easy.retry.server.common.config.SystemProperties;
+import com.aizuda.easy.retry.server.common.enums.DelayLevelEnum;
+import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.WaitStrategy;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import com.aizuda.easy.retry.template.datasource.persistence.po.SceneConfig;
diff --git a/easy-retry-server/easy-retry-server-retry-task/src/main/resources/META-INF/spring.factories b/easy-retry-server/easy-retry-server-retry-task/src/main/resources/META-INF/spring.factories
new file mode 100644
index 00000000..c2a80ad7
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-retry-task/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,2 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ com.aizuda.easy.retry.server.retry.task.config.EasyRetryServerRetryTaskAutoConfiguration
diff --git a/easy-retry-server/.gitignore b/easy-retry-server/easy-retry-server-starter/.gitignore
similarity index 97%
rename from easy-retry-server/.gitignore
rename to easy-retry-server/easy-retry-server-starter/.gitignore
index a73f4141..28b51ee1 100644
--- a/easy-retry-server/.gitignore
+++ b/easy-retry-server/easy-retry-server-starter/.gitignore
@@ -1,5 +1,5 @@
HELP.md
-target/
+../target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
diff --git a/easy-retry-server/Dockerfile b/easy-retry-server/easy-retry-server-starter/Dockerfile
similarity index 80%
rename from easy-retry-server/Dockerfile
rename to easy-retry-server/easy-retry-server-starter/Dockerfile
index eee3addb..5f89619a 100644
--- a/easy-retry-server/Dockerfile
+++ b/easy-retry-server/easy-retry-server-starter/Dockerfile
@@ -2,7 +2,7 @@ FROM openjdk:8-jdk-alpine
MAINTAINER www.byteblogs.com
LABEL server-name=easy-retry-server
-ADD ./target/easy-retry-server.jar easy-retry-server.jar
+ADD ../target/easy-retry-server.jar easy-retry-server.jar
#对外暴漏的端口号
EXPOSE 8080
diff --git a/easy-retry-server/easy-retry-server-starter/pom.xml b/easy-retry-server/easy-retry-server-starter/pom.xml
new file mode 100644
index 00000000..9e3dd24e
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-starter/pom.xml
@@ -0,0 +1,74 @@
+
+
+ 4.0.0
+
+ com.aizuda
+ easy-retry-server
+ ${revision}
+ ../pom.xml
+
+
+ easy-retry-server-starter
+ easy-retry-server-starter
+ easy-retry-server-starter
+ jar
+
+
+ 1.8
+ 8
+ 8
+ UTF-8
+
+
+
+
+ com.aizuda
+ easy-retry-server-web
+
+
+ com.aizuda
+ easy-retry-server-retry-task
+
+
+ com.aizuda
+ easy-retry-server-job-task
+
+
+ com.aizuda
+ easy-retry-server-common
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ io.netty
+ netty-all
+
+
+ junit
+ junit
+ test
+
+
+ org.projectlombok
+ lombok
+
+
+ com.github.rholder
+ guava-retrying
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/EasyRetryServerApplication.java b/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/EasyRetryServerApplication.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/EasyRetryServerApplication.java
rename to easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/EasyRetryServerApplication.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServer.java b/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServer.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServer.java
rename to easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServer.java
index 42324353..9bba99f1 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServer.java
+++ b/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServer.java
@@ -1,8 +1,9 @@
package com.aizuda.easy.retry.server.server;
-import com.aizuda.easy.retry.server.config.SystemProperties;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.support.Lifecycle;
+
+import com.aizuda.easy.retry.server.common.config.SystemProperties;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.Lifecycle;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServerHandler.java b/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServerHandler.java
similarity index 88%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServerHandler.java
rename to easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServerHandler.java
index 5f77c255..4b6e682f 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServerHandler.java
+++ b/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/NettyHttpServerHandler.java
@@ -1,8 +1,8 @@
package com.aizuda.easy.retry.server.server;
import akka.actor.ActorRef;
-import com.aizuda.easy.retry.server.akka.ActorGenerator;
-import com.aizuda.easy.retry.server.dto.NettyHttpRequest;
+import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.common.dto.NettyHttpRequest;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.handler.codec.http.FullHttpRequest;
@@ -10,8 +10,6 @@ import io.netty.handler.codec.http.HttpUtil;
import io.netty.util.CharsetUtil;
import lombok.extern.slf4j.Slf4j;
-import java.util.concurrent.ThreadPoolExecutor;
-
/**
* @author: www.byteblogs.com
* @date : 2022-03-07 16:03
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/RequestHandlerActor.java b/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/RequestHandlerActor.java
similarity index 90%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/RequestHandlerActor.java
rename to easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/RequestHandlerActor.java
index 8f69f419..8feeea97 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/RequestHandlerActor.java
+++ b/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/RequestHandlerActor.java
@@ -2,17 +2,19 @@ package com.aizuda.easy.retry.server.server;
import akka.actor.AbstractActor;
import cn.hutool.core.net.url.UrlBuilder;
+import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.common.core.context.SpringContext;
import com.aizuda.easy.retry.common.core.enums.HeadersEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.common.core.model.Result;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
-import com.aizuda.easy.retry.server.dto.NettyHttpRequest;
-import com.aizuda.easy.retry.server.server.handler.HttpRequestHandler;
-import com.aizuda.easy.retry.server.support.Register;
-import com.aizuda.easy.retry.server.support.handler.ConfigVersionSyncHandler;
-import com.aizuda.easy.retry.server.support.register.ClientRegister;
-import com.aizuda.easy.retry.server.support.register.RegisterContext;
+import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.common.dto.NettyHttpRequest;
+import com.aizuda.easy.retry.server.common.Register;
+import com.aizuda.easy.retry.server.retry.task.support.handler.ConfigVersionSyncHandler;
+import com.aizuda.easy.retry.server.common.register.ClientRegister;
+import com.aizuda.easy.retry.server.common.register.RegisterContext;
+import com.aizuda.easy.retry.server.common.handler.HttpRequestHandler;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.http.DefaultFullHttpResponse;
@@ -25,7 +27,6 @@ import io.netty.handler.codec.http.HttpResponseStatus;
import io.netty.handler.codec.http.HttpVersion;
import io.netty.util.CharsetUtil;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@@ -39,19 +40,17 @@ import java.util.Collection;
* @date : 2023-07-24 09:20
* @since 2.1.0
*/
-@Component(RequestHandlerActor.BEAN_NAME)
+@Component(ActorGenerator.REQUEST_HANDLER_ACTOR)
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Slf4j
public class RequestHandlerActor extends AbstractActor {
- public static final String BEAN_NAME = "requestHandlerActor";
-
@Override
public Receive createReceive() {
return receiveBuilder().match(NettyHttpRequest.class, nettyHttpRequest -> {
final String uri = nettyHttpRequest.getUri();
- if (StringUtils.isBlank(uri)) {
+ if (StrUtil.isBlank(uri)) {
LogUtils.error(log, "uri can not be null");
return;
}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/BeatHttpRequestHandler.java b/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/handler/BeatHttpRequestHandler.java
similarity index 95%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/BeatHttpRequestHandler.java
rename to easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/handler/BeatHttpRequestHandler.java
index 70638bc7..baa87a4a 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/BeatHttpRequestHandler.java
+++ b/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/handler/BeatHttpRequestHandler.java
@@ -6,6 +6,7 @@ import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.common.core.model.NettyResult;
import com.aizuda.easy.retry.common.core.model.EasyRetryRequest;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
+import com.aizuda.easy.retry.server.common.handler.GetHttpRequestHandler;
import io.netty.handler.codec.http.HttpHeaders;
import io.netty.handler.codec.http.HttpMethod;
import lombok.extern.slf4j.Slf4j;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/ConfigHttpRequestHandler.java b/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/handler/ConfigHttpRequestHandler.java
similarity index 95%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/ConfigHttpRequestHandler.java
rename to easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/handler/ConfigHttpRequestHandler.java
index 98917aa1..63793556 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/server/handler/ConfigHttpRequestHandler.java
+++ b/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/server/handler/ConfigHttpRequestHandler.java
@@ -1,6 +1,7 @@
package com.aizuda.easy.retry.server.server.handler;
import cn.hutool.core.net.url.UrlQuery;
+import com.aizuda.easy.retry.server.common.handler.GetHttpRequestHandler;
import com.aizuda.easy.retry.server.model.dto.ConfigDTO;
import com.aizuda.easy.retry.common.core.enums.HeadersEnum;
import com.aizuda.easy.retry.common.core.model.NettyResult;
diff --git a/easy-retry-server/src/main/resources/admin/assets/background.6f870c8d.svg b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/assets/background.6f870c8d.svg
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/assets/background.6f870c8d.svg
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/assets/background.6f870c8d.svg
diff --git a/easy-retry-server/src/main/resources/admin/avatar2.jpg b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/avatar2.jpg
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/avatar2.jpg
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/avatar2.jpg
diff --git a/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/app.f24fef3a.css b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/app.f24fef3a.css
new file mode 100644
index 00000000..39e435e4
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/app.f24fef3a.css
@@ -0,0 +1 @@
+.ant-pro-header-menu .anticon{margin-right:8px}.ant-pro-header-menu .ant-dropdown-menu-item{min-width:160px}.ant-pro-drop-down{line-height:64px;vertical-align:top;cursor:pointer}.ant-pro-drop-down>i{font-size:16px!important;-webkit-transform:none!important;transform:none!important}.ant-pro-drop-down>i svg{position:relative;top:-1px}#userLayout.user-layout-wrapper[data-v-77578f85]{height:100%}#userLayout.user-layout-wrapper.mobile .container .main[data-v-77578f85]{max-width:368px;width:98%}#userLayout.user-layout-wrapper .container[data-v-77578f85]{width:100%;min-height:100%;background:#f0f2f5 url(background.6f870c8d.svg) no-repeat 50%;background-size:100%;padding:10% 0 0 0;position:relative}#userLayout.user-layout-wrapper .container .user-layout-lang[data-v-77578f85]{width:100%;height:40px;line-height:44px;text-align:right}#userLayout.user-layout-wrapper .container .user-layout-lang .select-lang-trigger[data-v-77578f85]{cursor:pointer;padding:12px;margin-right:24px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:18px;vertical-align:middle}#userLayout.user-layout-wrapper .container .user-layout-content[data-v-77578f85]{padding:32px 0 24px}#userLayout.user-layout-wrapper .container .user-layout-content .top[data-v-77578f85]{text-align:center}#userLayout.user-layout-wrapper .container .user-layout-content .top .header[data-v-77578f85]{height:44px;line-height:44px}#userLayout.user-layout-wrapper .container .user-layout-content .top .header .badge[data-v-77578f85]{position:absolute;display:inline-block;line-height:1;vertical-align:middle;margin-left:-12px;margin-top:-10px;opacity:.8}#userLayout.user-layout-wrapper .container .user-layout-content .top .header .logo[data-v-77578f85]{height:44px;vertical-align:top;margin-right:16px;border-style:none}#userLayout.user-layout-wrapper .container .user-layout-content .top .header .title[data-v-77578f85]{font-size:33px;color:rgba(0,0,0,.85);font-family:Avenir,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:600;position:relative;top:2px}#userLayout.user-layout-wrapper .container .user-layout-content .top .desc[data-v-77578f85]{font-size:14px;color:rgba(0,0,0,.45);margin-top:12px;margin-bottom:40px}#userLayout.user-layout-wrapper .container .user-layout-content .main[data-v-77578f85]{min-width:260px;width:368px;margin:0 auto}#userLayout.user-layout-wrapper .container .user-layout-content .footer[data-v-77578f85]{width:100%;bottom:0;padding:0 16px;margin:48px 0 24px;text-align:center}#userLayout.user-layout-wrapper .container .user-layout-content .footer .links[data-v-77578f85]{margin-bottom:8px;font-size:14px}#userLayout.user-layout-wrapper .container .user-layout-content .footer .links a[data-v-77578f85]{color:rgba(0,0,0,.45);-webkit-transition:all .3s;transition:all .3s}#userLayout.user-layout-wrapper .container .user-layout-content .footer .links a[data-v-77578f85]:not(:last-child){margin-right:40px}#userLayout.user-layout-wrapper .container .user-layout-content .footer .copyright[data-v-77578f85]{color:rgba(0,0,0,.45);font-size:14px}#userLayout.user-layout-wrapper .container a[data-v-77578f85]{text-decoration:none}.ant-pro-drop-down[data-v-fd4de960] .action{margin-right:8px}.ant-pro-drop-down[data-v-fd4de960] .ant-dropdown-menu-item{min-width:160px}.business-pro-ad[data-v-4109f67d]{position:fixed;background:hsla(0,0%,100%,.25);left:0;bottom:0;padding:0 12px;height:48px;width:258px;z-index:99}.ant-pro-global-header-index-right{margin-right:8px}.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-global-header-index-action{color:hsla(0,0%,100%,.85)}.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-global-header-index-action:hover{background:#1890ff}.ant-pro-global-header-index-right .ant-pro-account-avatar .antd-pro-global-header-index-avatar{margin:20px 0;margin-right:8px;color:#22aae3;vertical-align:top;background:hsla(0,0%,100%,.85)}.ant-pro-global-header-index-right .menu .anticon{margin-right:8px}.ant-pro-global-header-index-right .menu .ant-dropdown-menu-item{min-width:100px}.ant-pro-multi-tab{margin:-23px -24px 24px -24px;background:#fff}.topmenu .ant-pro-multi-tab-wrapper{max-width:1200px;margin:0 auto}.topmenu.content-width-Fluid .ant-pro-multi-tab-wrapper{max-width:100%;margin:0 auto}body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;color:rgba(0,0,0,.65);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-variant:tabular-nums;line-height:1.5;background-color:#fff;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}[tabindex="-1"]:focus{outline:none!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#22aae3;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;-webkit-text-decoration-skip:objects}a:hover{color:#4ac4f0}a:active{color:#1384bd}a:active,a:hover{text-decoration:none;outline:0}a[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed;pointer-events:none}code,kbd,pre,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}th{text-align:inherit}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}::-moz-selection{color:#fff;background:#22aae3}::selection{color:#fff;background:#22aae3}.clearfix{zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}.anticon{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon>*{line-height:1}.anticon svg{display:inline-block}.anticon:before{display:none}.anticon .anticon-icon{display:block}.anticon[tabindex]{cursor:pointer}.anticon-spin,.anticon-spin:before{display:inline-block;-webkit-animation:loadingCircle 1s linear infinite;animation:loadingCircle 1s linear infinite}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear.fade-appear-active,.fade-enter.fade-enter-active{-webkit-animation-name:antFadeIn;animation-name:antFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave.fade-leave-active{-webkit-animation-name:antFadeOut;animation-name:antFadeOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.fade-appear,.fade-enter{opacity:0}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.move-up-appear,.move-up-enter,.move-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear.move-up-appear-active,.move-up-enter.move-up-enter-active{-webkit-animation-name:antMoveUpIn;animation-name:antMoveUpIn;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave.move-up-leave-active{-webkit-animation-name:antMoveUpOut;animation-name:antMoveUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-up-appear,.move-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-up-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear,.move-down-enter,.move-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear.move-down-appear-active,.move-down-enter.move-down-enter-active{-webkit-animation-name:antMoveDownIn;animation-name:antMoveDownIn;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave.move-down-leave-active{-webkit-animation-name:antMoveDownOut;animation-name:antMoveDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-down-appear,.move-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-down-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear,.move-left-enter,.move-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear.move-left-appear-active,.move-left-enter.move-left-enter-active{-webkit-animation-name:antMoveLeftIn;animation-name:antMoveLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave.move-left-leave-active{-webkit-animation-name:antMoveLeftOut;animation-name:antMoveLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-left-appear,.move-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-left-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear,.move-right-enter,.move-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear.move-right-appear-active,.move-right-enter.move-right-enter-active{-webkit-animation-name:antMoveRightIn;animation-name:antMoveRightIn;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave.move-right-leave-active{-webkit-animation-name:antMoveRightOut;animation-name:antMoveRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-right-appear,.move-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-right-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveDownIn{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveDownOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveDownOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveLeftIn{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveLeftIn{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveLeftOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveLeftOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveRightIn{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveRightIn{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveRightOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveRightOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveUpIn{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveUpIn{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveUpOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveUpOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes loadingCircle{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingCircle{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true],[ant-click-animating=true]{position:relative}html{--antd-wave-shadow-color:#22aae3}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;-webkit-box-shadow:0 0 0 0 #22aae3;box-shadow:0 0 0 0 #22aae3;-webkit-box-shadow:0 0 0 0 var(--antd-wave-shadow-color);box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;-webkit-animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}@-webkit-keyframes waveEffect{to{-webkit-box-shadow:0 0 0 #22aae3;box-shadow:0 0 0 #22aae3;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect{to{-webkit-box-shadow:0 0 0 #22aae3;box-shadow:0 0 0 #22aae3;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect{to{opacity:0}}@keyframes fadeEffect{to{opacity:0}}.slide-up-appear,.slide-up-enter,.slide-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear.slide-up-appear-active,.slide-up-enter.slide-up-enter-active{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave.slide-up-leave-active{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-up-appear,.slide-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-up-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear,.slide-down-enter,.slide-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear.slide-down-appear-active,.slide-down-enter.slide-down-enter-active{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave.slide-down-leave-active{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-down-appear,.slide-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-down-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear,.slide-left-enter,.slide-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear.slide-left-appear-active,.slide-left-enter.slide-left-enter-active{-webkit-animation-name:antSlideLeftIn;animation-name:antSlideLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave.slide-left-leave-active{-webkit-animation-name:antSlideLeftOut;animation-name:antSlideLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-left-appear,.slide-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-left-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear,.slide-right-enter,.slide-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear.slide-right-appear-active,.slide-right-enter.slide-right-enter-active{-webkit-animation-name:antSlideRightIn;animation-name:antSlideRightIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave.slide-right-leave-active{-webkit-animation-name:antSlideRightOut;animation-name:antSlideRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-right-appear,.slide-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-right-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideUpIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideUpOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideUpOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideDownIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@-webkit-keyframes antSlideDownOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@keyframes antSlideDownOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@-webkit-keyframes antSlideLeftIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideLeftIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideLeftOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideLeftOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideRightIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@keyframes antSlideRightIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@-webkit-keyframes antSlideRightOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}@keyframes antSlideRightOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}.swing-appear,.swing-enter{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.swing-appear.swing-appear-active,.swing-enter.swing-enter-active{-webkit-animation-name:antSwingIn;animation-name:antSwingIn;-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes antSwingIn{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}@keyframes antSwingIn{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}.zoom-appear,.zoom-enter,.zoom-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-appear.zoom-appear-active,.zoom-enter.zoom-enter-active{-webkit-animation-name:antZoomIn;animation-name:antZoomIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-leave.zoom-leave-active{-webkit-animation-name:antZoomOut;animation-name:antZoomOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-appear,.zoom-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear,.zoom-big-enter,.zoom-big-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active,.zoom-big-enter.zoom-big-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-appear,.zoom-big-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear,.zoom-big-fast-enter,.zoom-big-fast-leave{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active,.zoom-big-fast-enter.zoom-big-fast-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear,.zoom-big-fast-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-fast-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear,.zoom-up-enter,.zoom-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active,.zoom-up-enter.zoom-up-enter-active{-webkit-animation-name:antZoomUpIn;animation-name:antZoomUpIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active{-webkit-animation-name:antZoomUpOut;animation-name:antZoomUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-up-appear,.zoom-up-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-up-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear,.zoom-down-enter,.zoom-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active,.zoom-down-enter.zoom-down-enter-active{-webkit-animation-name:antZoomDownIn;animation-name:antZoomDownIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active{-webkit-animation-name:antZoomDownOut;animation-name:antZoomDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-down-appear,.zoom-down-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-down-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear,.zoom-left-enter,.zoom-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active,.zoom-left-enter.zoom-left-enter-active{-webkit-animation-name:antZoomLeftIn;animation-name:antZoomLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active{-webkit-animation-name:antZoomLeftOut;animation-name:antZoomLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-left-appear,.zoom-left-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-left-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear,.zoom-right-enter,.zoom-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active,.zoom-right-enter.zoom-right-enter-active{-webkit-animation-name:antZoomRightIn;animation-name:antZoomRightIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active{-webkit-animation-name:antZoomRightOut;animation-name:antZoomRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-right-appear,.zoom-right-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-right-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomIn{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@keyframes antZoomOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@-webkit-keyframes antZoomBigIn{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomBigIn{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomBigOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@keyframes antZoomBigOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@-webkit-keyframes antZoomUpIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@keyframes antZoomUpIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@keyframes antZoomUpOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@-webkit-keyframes antZoomLeftIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@keyframes antZoomLeftIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@keyframes antZoomLeftOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@-webkit-keyframes antZoomRightIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@keyframes antZoomRightIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@keyframes antZoomRightOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@-webkit-keyframes antZoomDownIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@keyframes antZoomDownIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}@keyframes antZoomDownOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse,.ant-motion-collapse-legacy-active{-webkit-transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important;transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden}#nprogress{pointer-events:none}#nprogress .bar{background:#22aae3;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;-webkit-box-shadow:0 0 10px #22aae3,0 0 5px #22aae3;box-shadow:0 0 10px #22aae3,0 0 5px #22aae3;opacity:1;-webkit-transform:rotate(3deg) translateY(-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;-webkit-box-sizing:border-box;box-sizing:border-box;border:2px solid transparent;border-top-color:#22aae3;border-left-color:#22aae3;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}#app,#root,body,html{height:100%}.colorWeak{-webkit-filter:invert(80%);filter:invert(80%)}.ant-layout.layout-basic{height:100vh;min-height:100vh}canvas{display:block}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}ol,ul{list-style:none}.table-alert{margin-bottom:16px}.table-operator{margin-bottom:18px}.table-operator button{margin-right:8px}.table-page-search-wrapper .ant-form-inline .ant-form-item{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:24px;margin-right:0}.table-page-search-wrapper .ant-form-inline .ant-form-item .ant-form-item-control-wrapper{-webkit-box-flex:1;-ms-flex:1 1;flex:1 1;display:inline-block;vertical-align:middle}.table-page-search-wrapper .ant-form-inline .ant-form-item>.ant-form-item-label{line-height:32px;padding-right:8px;width:auto}.table-page-search-wrapper .ant-form-inline .ant-form-item .ant-form-item-control{height:32px;line-height:32px}.table-page-search-wrapper .table-page-search-submitButtons{display:block;margin-bottom:24px;white-space:nowrap}@media (max-width:480px){.ant-table{width:100%;overflow-x:auto}.ant-table-tbody>tr>td,.ant-table-tbody>tr>th,.ant-table-thead>tr>td,.ant-table-thead>tr>th{white-space:pre}.ant-table-tbody>tr>td>span,.ant-table-tbody>tr>th>span,.ant-table-thead>tr>td>span,.ant-table-thead>tr>th>span{display:block}}
\ No newline at end of file
diff --git a/easy-retry-server/src/main/resources/admin/css/chunk-758b2aa4.1c9c785f.css b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/chunk-758b2aa4.1c9c785f.css
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/css/chunk-758b2aa4.1c9c785f.css
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/chunk-758b2aa4.1c9c785f.css
diff --git a/easy-retry-server/src/main/resources/admin/css/chunk-ec9b3564.28cc4171.css b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/chunk-ec9b3564.28cc4171.css
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/css/chunk-ec9b3564.28cc4171.css
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/chunk-ec9b3564.28cc4171.css
diff --git a/easy-retry-server/src/main/resources/admin/css/chunk-ff9025ec.a34448d4.css b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/chunk-ff9025ec.a34448d4.css
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/css/chunk-ff9025ec.a34448d4.css
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/chunk-ff9025ec.a34448d4.css
diff --git a/easy-retry-server/src/main/resources/admin/css/chunk-vendors.fecaff35.css b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/chunk-vendors.fecaff35.css
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/css/chunk-vendors.fecaff35.css
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/chunk-vendors.fecaff35.css
diff --git a/easy-retry-server/src/main/resources/admin/css/user.6ccd4506.css b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/user.6ccd4506.css
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/css/user.6ccd4506.css
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/css/user.6ccd4506.css
diff --git a/easy-retry-server/src/main/resources/admin/img/logo.af534ed8.png b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/img/logo.af534ed8.png
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/img/logo.af534ed8.png
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/img/logo.af534ed8.png
diff --git a/easy-retry-server/src/main/resources/admin/index.html b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/index.html
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/index.html
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/index.html
diff --git a/easy-retry-server/src/main/resources/admin/js/app.295f12bd.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/app.295f12bd.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/app.295f12bd.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/app.295f12bd.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-251479d0.728e634b.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-251479d0.728e634b.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-251479d0.728e634b.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-251479d0.728e634b.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-2d0a4079.7a476d69.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-2d0a4079.7a476d69.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-2d0a4079.7a476d69.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-2d0a4079.7a476d69.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-2d0b7230.56b5fe26.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-2d0b7230.56b5fe26.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-2d0b7230.56b5fe26.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-2d0b7230.56b5fe26.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-2d0c8f97.d89584ad.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-2d0c8f97.d89584ad.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-2d0c8f97.d89584ad.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-2d0c8f97.d89584ad.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-2d0f085f.a058313b.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-2d0f085f.a058313b.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-2d0f085f.a058313b.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-2d0f085f.a058313b.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-2d21a08f.98f6c23f.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-2d21a08f.98f6c23f.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-2d21a08f.98f6c23f.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-2d21a08f.98f6c23f.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-2d228eef.dd26fc5b.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-2d228eef.dd26fc5b.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-2d228eef.dd26fc5b.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-2d228eef.dd26fc5b.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-35f76107.c572dfc7.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-35f76107.c572dfc7.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-35f76107.c572dfc7.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-35f76107.c572dfc7.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-40597980.0ec09995.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-40597980.0ec09995.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-40597980.0ec09995.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-40597980.0ec09995.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-74bac939.c7253d3b.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-74bac939.c7253d3b.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-74bac939.c7253d3b.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-74bac939.c7253d3b.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-758b2aa4.2544202c.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-758b2aa4.2544202c.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-758b2aa4.2544202c.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-758b2aa4.2544202c.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-ec9b3564.02b5e172.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-ec9b3564.02b5e172.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-ec9b3564.02b5e172.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-ec9b3564.02b5e172.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-ff9025ec.23405bb0.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-ff9025ec.23405bb0.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-ff9025ec.23405bb0.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-ff9025ec.23405bb0.js
diff --git a/easy-retry-server/src/main/resources/admin/js/chunk-vendors.2d5d4160.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-vendors.2d5d4160.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/chunk-vendors.2d5d4160.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/chunk-vendors.2d5d4160.js
diff --git a/easy-retry-server/src/main/resources/admin/js/fail.a42f4ac2.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/fail.a42f4ac2.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/fail.a42f4ac2.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/fail.a42f4ac2.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN-account-settings.f8f25eaf.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-account-settings.f8f25eaf.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN-account-settings.f8f25eaf.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-account-settings.f8f25eaf.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN-account.7e2ad2ea.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-account.7e2ad2ea.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN-account.7e2ad2ea.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-account.7e2ad2ea.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN-dashboard-analysis.98c2997a.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-dashboard-analysis.98c2997a.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN-dashboard-analysis.98c2997a.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-dashboard-analysis.98c2997a.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN-dashboard.ea812f6e.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-dashboard.ea812f6e.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN-dashboard.ea812f6e.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-dashboard.ea812f6e.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN-form-basicForm.ff3088ac.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-form-basicForm.ff3088ac.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN-form-basicForm.ff3088ac.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-form-basicForm.ff3088ac.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN-form.5f6efd97.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-form.5f6efd97.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN-form.5f6efd97.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-form.5f6efd97.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN-global.bf0df5c8.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-global.bf0df5c8.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN-global.bf0df5c8.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-global.bf0df5c8.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN-menu.25425a62.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-menu.25425a62.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN-menu.25425a62.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-menu.25425a62.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN-result-fail.232762aa.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-result-fail.232762aa.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN-result-fail.232762aa.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-result-fail.232762aa.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN-result-success.3519c60c.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-result-success.3519c60c.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN-result-success.3519c60c.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-result-success.3519c60c.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN-result.7201a99b.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-result.7201a99b.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN-result.7201a99b.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-result.7201a99b.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN-setting.8c2ce690.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-setting.8c2ce690.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN-setting.8c2ce690.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-setting.8c2ce690.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN-user.81513cba.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-user.81513cba.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN-user.81513cba.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN-user.81513cba.js
diff --git a/easy-retry-server/src/main/resources/admin/js/lang-zh-CN.72b79d71.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN.72b79d71.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/lang-zh-CN.72b79d71.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/lang-zh-CN.72b79d71.js
diff --git a/easy-retry-server/src/main/resources/admin/js/user.badd730b.js b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/user.badd730b.js
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/js/user.badd730b.js
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/js/user.badd730b.js
diff --git a/easy-retry-server/src/main/resources/admin/logo.png b/easy-retry-server/easy-retry-server-starter/src/main/resources/admin/logo.png
similarity index 100%
rename from easy-retry-server/src/main/resources/admin/logo.png
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/admin/logo.png
diff --git a/easy-retry-server/src/main/resources/application.yml b/easy-retry-server/easy-retry-server-starter/src/main/resources/application.yml
similarity index 100%
rename from easy-retry-server/src/main/resources/application.yml
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/application.yml
diff --git a/easy-retry-server/src/main/resources/logback-boot.xml b/easy-retry-server/easy-retry-server-starter/src/main/resources/logback-boot.xml
similarity index 100%
rename from easy-retry-server/src/main/resources/logback-boot.xml
rename to easy-retry-server/easy-retry-server-starter/src/main/resources/logback-boot.xml
diff --git a/easy-retry-server/easy-retry-server-starter/src/main/resources/spring-configuration-metadata.json b/easy-retry-server/easy-retry-server-starter/src/main/resources/spring-configuration-metadata.json
new file mode 100644
index 00000000..95dd2bcf
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-starter/src/main/resources/spring-configuration-metadata.json
@@ -0,0 +1,18 @@
+{
+ "groups": [
+ {
+ "name": "easy-retry",
+ "type": "com.aizuda.easy.retry.server.common.config.SystemProperties",
+ "sourceType": "com.aizuda.easy.retry.server.common.config.SystemProperties"
+ }
+ ],
+ "properties": [
+ {
+ "name": "easy-retry.callback",
+ "type": "com.aizuda.easy.retry.server.common.config.SystemProperties$Callback",
+ "defaultValue": "30",
+ "description": "服务端的地址,若服务端集群部署则此处配置域名",
+ "sourceType": "com.aizuda.easy.retry.server.common.config.SystemProperties"
+ }
+ ]
+}
diff --git a/easy-retry-server/src/test/java/com/aizuda/easy/retry/server/Abstract.java b/easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/Abstract.java
similarity index 100%
rename from easy-retry-server/src/test/java/com/aizuda/easy/retry/server/Abstract.java
rename to easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/Abstract.java
diff --git a/easy-retry-server/src/test/java/com/aizuda/easy/retry/server/ConfigVersionSyncHandlerTest.java b/easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/ConfigVersionSyncHandlerTest.java
similarity index 86%
rename from easy-retry-server/src/test/java/com/aizuda/easy/retry/server/ConfigVersionSyncHandlerTest.java
rename to easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/ConfigVersionSyncHandlerTest.java
index 2f10a075..a03b7ceb 100644
--- a/easy-retry-server/src/test/java/com/aizuda/easy/retry/server/ConfigVersionSyncHandlerTest.java
+++ b/easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/ConfigVersionSyncHandlerTest.java
@@ -1,6 +1,6 @@
package com.aizuda.easy.retry.server;
-import com.aizuda.easy.retry.server.support.handler.ConfigVersionSyncHandler;
+import com.aizuda.easy.retry.server.retry.task.support.handler.ConfigVersionSyncHandler;
import lombok.SneakyThrows;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/easy-retry-server/src/test/java/com/aizuda/easy/retry/server/XRetryServerApplicationTests.java b/easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/XRetryServerApplicationTests.java
similarity index 100%
rename from easy-retry-server/src/test/java/com/aizuda/easy/retry/server/XRetryServerApplicationTests.java
rename to easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/XRetryServerApplicationTests.java
diff --git a/easy-retry-server/src/test/java/com/aizuda/easy/retry/server/mapper/RetryTaskMapperTest.java b/easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/mapper/RetryTaskMapperTest.java
similarity index 100%
rename from easy-retry-server/src/test/java/com/aizuda/easy/retry/server/mapper/RetryTaskMapperTest.java
rename to easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/mapper/RetryTaskMapperTest.java
diff --git a/easy-retry-server/src/test/java/com/aizuda/easy/retry/server/mapper/SystemConfigGroupMapperTest.java b/easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/mapper/SystemConfigGroupMapperTest.java
similarity index 100%
rename from easy-retry-server/src/test/java/com/aizuda/easy/retry/server/mapper/SystemConfigGroupMapperTest.java
rename to easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/mapper/SystemConfigGroupMapperTest.java
diff --git a/easy-retry-server/src/test/java/com/aizuda/easy/retry/server/support/generator/id/SegmentIdGeneratorTest.java b/easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/support/generator/id/SegmentIdGeneratorTest.java
similarity index 91%
rename from easy-retry-server/src/test/java/com/aizuda/easy/retry/server/support/generator/id/SegmentIdGeneratorTest.java
rename to easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/support/generator/id/SegmentIdGeneratorTest.java
index 7df75bdd..108e6c6a 100644
--- a/easy-retry-server/src/test/java/com/aizuda/easy/retry/server/support/generator/id/SegmentIdGeneratorTest.java
+++ b/easy-retry-server/easy-retry-server-starter/src/test/java/com/aizuda/easy/retry/server/support/generator/id/SegmentIdGeneratorTest.java
@@ -1,10 +1,10 @@
package com.aizuda.easy.retry.server.support.generator.id;
import com.aizuda.easy.retry.common.core.log.LogUtils;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.support.generator.IdGenerator;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.generator.id.IdGenerator;
import lombok.extern.slf4j.Slf4j;
-import org.junit.jupiter.api.Test;
+import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
diff --git a/easy-retry-server/easy-retry-server-web/.gitignore b/easy-retry-server/easy-retry-server-web/.gitignore
new file mode 100644
index 00000000..5ff6309b
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-web/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/easy-retry-server/easy-retry-server-web/pom.xml b/easy-retry-server/easy-retry-server-web/pom.xml
new file mode 100644
index 00000000..f35dc580
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-web/pom.xml
@@ -0,0 +1,94 @@
+
+
+ 4.0.0
+
+ com.aizuda
+ easy-retry-server
+ ${revision}
+ ../pom.xml
+
+
+ easy-retry-server-web
+ jar
+
+
+ 8
+ 8
+ UTF-8
+ 4.4.0
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ com.aizuda
+ easy-retry-server-common
+
+
+ org.projectlombok
+ lombok
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ com.aizuda
+ easy-retry-datasource-template
+
+
+ com.aizuda
+ easy-retry-mysql-datasource
+
+
+ com.aizuda
+ easy-retry-postgres-datasource
+
+
+ com.aizuda
+ easy-retry-mariadb-datasource
+
+
+ org.mapstruct
+ mapstruct
+
+
+ org.mapstruct
+ mapstruct-processor
+
+
+ com.auth0
+ java-jwt
+
+
+ com.aizuda
+ easy-retry-server-retry-task
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ none
+ execute
+
+
+
+
+ repackage
+
+
+
+
+
+
+
+
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/annotation/LoginRequired.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/annotation/LoginRequired.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/annotation/LoginRequired.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/annotation/LoginRequired.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/annotation/LoginUser.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/annotation/LoginUser.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/annotation/LoginUser.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/annotation/LoginUser.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/annotation/RoleEnum.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/annotation/RoleEnum.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/annotation/RoleEnum.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/annotation/RoleEnum.java
diff --git a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/config/EasyRetryServerWebAutoConfiguration.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/config/EasyRetryServerWebAutoConfiguration.java
new file mode 100644
index 00000000..27eeda81
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/config/EasyRetryServerWebAutoConfiguration.java
@@ -0,0 +1,16 @@
+package com.aizuda.easy.retry.server.web.config;
+
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * web访问模块
+ *
+ * @author: www.byteblogs.com
+ * @date : 2023-09-19 09:21
+ */
+@Configuration
+@ComponentScan("com.aizuda.easy.retry.server.web.*")
+public class EasyRetryServerWebAutoConfiguration {
+
+}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/DashBoardController.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/DashBoardController.java
similarity index 96%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/DashBoardController.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/DashBoardController.java
index 549975e5..13026c96 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/DashBoardController.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/DashBoardController.java
@@ -1,7 +1,6 @@
package com.aizuda.easy.retry.server.web.controller;
-import com.aizuda.easy.retry.server.service.DashBoardService;
-import com.aizuda.easy.retry.server.support.cache.CacheConsumerGroup;
+import com.aizuda.easy.retry.server.common.cache.CacheConsumerGroup;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.ServerNodeQueryVO;
import com.aizuda.easy.retry.server.web.model.response.ActivePodQuantityResponseVO;
@@ -10,6 +9,7 @@ import com.aizuda.easy.retry.server.web.model.response.SceneQuantityRankResponse
import com.aizuda.easy.retry.server.web.annotation.LoginRequired;
import com.aizuda.easy.retry.server.web.model.response.ServerNodeResponseVO;
import com.aizuda.easy.retry.server.web.model.response.TaskQuantityResponseVO;
+import com.aizuda.easy.retry.server.web.service.DashBoardService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/GroupConfigController.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/GroupConfigController.java
similarity index 95%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/GroupConfigController.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/GroupConfigController.java
index 87d58ef8..a7d09cbd 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/GroupConfigController.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/GroupConfigController.java
@@ -1,13 +1,13 @@
package com.aizuda.easy.retry.server.web.controller;
-import com.aizuda.easy.retry.server.config.SystemProperties;
-import com.aizuda.easy.retry.server.service.GroupConfigService;
+import com.aizuda.easy.retry.server.common.config.SystemProperties;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.GroupConfigQueryVO;
import com.aizuda.easy.retry.server.web.model.request.GroupConfigRequestVO;
import com.aizuda.easy.retry.server.web.model.response.GroupConfigResponseVO;
import com.aizuda.easy.retry.server.web.annotation.LoginRequired;
import com.aizuda.easy.retry.server.web.annotation.RoleEnum;
+import com.aizuda.easy.retry.server.web.service.GroupConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/NotifyConfigController.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/NotifyConfigController.java
similarity index 93%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/NotifyConfigController.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/NotifyConfigController.java
index 551988b8..100f61e6 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/NotifyConfigController.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/NotifyConfigController.java
@@ -1,8 +1,8 @@
package com.aizuda.easy.retry.server.web.controller;
-import com.aizuda.easy.retry.server.service.NotifyConfigService;
import com.aizuda.easy.retry.server.web.annotation.LoginRequired;
import com.aizuda.easy.retry.server.web.model.response.NotifyConfigResponseVO;
+import com.aizuda.easy.retry.server.web.service.NotifyConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryDeadLetterController.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryDeadLetterController.java
similarity index 96%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryDeadLetterController.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryDeadLetterController.java
index 208b8313..025164fe 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryDeadLetterController.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryDeadLetterController.java
@@ -1,12 +1,12 @@
package com.aizuda.easy.retry.server.web.controller;
-import com.aizuda.easy.retry.server.service.RetryDeadLetterService;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.BatchDeleteRetryDeadLetterVO;
import com.aizuda.easy.retry.server.web.model.request.BatchRollBackRetryDeadLetterVO;
import com.aizuda.easy.retry.server.web.model.request.RetryDeadLetterQueryVO;
import com.aizuda.easy.retry.server.web.annotation.LoginRequired;
import com.aizuda.easy.retry.server.web.model.response.RetryDeadLetterResponseVO;
+import com.aizuda.easy.retry.server.web.service.RetryDeadLetterService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskController.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskController.java
similarity index 83%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskController.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskController.java
index ac7c6387..ea21a472 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskController.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskController.java
@@ -1,11 +1,18 @@
package com.aizuda.easy.retry.server.web.controller;
import com.aizuda.easy.retry.common.core.model.Result;
-import com.aizuda.easy.retry.server.service.RetryTaskService;
import com.aizuda.easy.retry.server.web.annotation.LoginRequired;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
-import com.aizuda.easy.retry.server.web.model.request.*;
+import com.aizuda.easy.retry.server.web.model.request.BatchDeleteRetryTaskVO;
+import com.aizuda.easy.retry.server.web.model.request.GenerateRetryIdempotentIdVO;
+import com.aizuda.easy.retry.server.web.model.request.ManualTriggerTaskRequestVO;
+import com.aizuda.easy.retry.server.web.model.request.ParseLogsVO;
+import com.aizuda.easy.retry.server.web.model.request.RetryTaskQueryVO;
+import com.aizuda.easy.retry.server.web.model.request.RetryTaskSaveRequestVO;
+import com.aizuda.easy.retry.server.web.model.request.RetryTaskUpdateExecutorNameRequestVO;
+import com.aizuda.easy.retry.server.web.model.request.RetryTaskUpdateStatusRequestVO;
import com.aizuda.easy.retry.server.web.model.response.RetryTaskResponseVO;
+import com.aizuda.easy.retry.server.web.service.RetryTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskLogController.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskLogController.java
similarity index 96%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskLogController.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskLogController.java
index 2c8312cf..894b10d2 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskLogController.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/RetryTaskLogController.java
@@ -1,12 +1,12 @@
package com.aizuda.easy.retry.server.web.controller;
-import com.aizuda.easy.retry.server.service.RetryTaskLogService;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.RetryTaskLogMessageQueryVO;
import com.aizuda.easy.retry.server.web.model.request.RetryTaskLogQueryVO;
import com.aizuda.easy.retry.server.web.annotation.LoginRequired;
import com.aizuda.easy.retry.server.web.model.response.RetryTaskLogMessageResponseVO;
import com.aizuda.easy.retry.server.web.model.response.RetryTaskLogResponseVO;
+import com.aizuda.easy.retry.server.web.service.RetryTaskLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/SceneConfigSceneController.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/SceneConfigSceneController.java
similarity index 95%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/SceneConfigSceneController.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/SceneConfigSceneController.java
index bffc8cdc..7ee68050 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/SceneConfigSceneController.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/SceneConfigSceneController.java
@@ -1,10 +1,10 @@
package com.aizuda.easy.retry.server.web.controller;
-import com.aizuda.easy.retry.server.service.SceneConfigService;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.SceneConfigQueryVO;
import com.aizuda.easy.retry.server.web.model.response.SceneConfigResponseVO;
import com.aizuda.easy.retry.server.web.annotation.LoginRequired;
+import com.aizuda.easy.retry.server.web.service.SceneConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/SystemInfoController.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/SystemInfoController.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/SystemInfoController.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/SystemInfoController.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/SystemUserController.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/SystemUserController.java
similarity index 97%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/SystemUserController.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/SystemUserController.java
index 0714e579..ccb96732 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/SystemUserController.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/SystemUserController.java
@@ -1,7 +1,7 @@
package com.aizuda.easy.retry.server.web.controller;
+import com.aizuda.easy.retry.server.web.service.SystemUserService;
import com.aizuda.easy.retry.template.datasource.persistence.po.SystemUser;
-import com.aizuda.easy.retry.server.service.SystemUserService;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.SystemUserQueryVO;
import com.aizuda.easy.retry.server.web.model.request.SystemUserRequestVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/WebController.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/WebController.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/controller/WebController.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/WebController.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/interceptor/AuthenticationInterceptor.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/interceptor/AuthenticationInterceptor.java
similarity index 98%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/interceptor/AuthenticationInterceptor.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/interceptor/AuthenticationInterceptor.java
index 246effb0..143ed738 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/interceptor/AuthenticationInterceptor.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/interceptor/AuthenticationInterceptor.java
@@ -1,6 +1,6 @@
package com.aizuda.easy.retry.server.web.interceptor;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.SystemUserMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.SystemUser;
import com.auth0.jwt.JWT;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/interceptor/CORSInterceptor.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/interceptor/CORSInterceptor.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/interceptor/CORSInterceptor.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/interceptor/CORSInterceptor.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/interceptor/LoginUserMethodArgumentResolver.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/interceptor/LoginUserMethodArgumentResolver.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/interceptor/LoginUserMethodArgumentResolver.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/interceptor/LoginUserMethodArgumentResolver.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/interceptor/XRetryWebMvcConfigurerAdapter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/interceptor/XRetryWebMvcConfigurerAdapter.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/interceptor/XRetryWebMvcConfigurerAdapter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/interceptor/XRetryWebMvcConfigurerAdapter.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/base/BaseQueryVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/base/BaseQueryVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/base/BaseQueryVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/base/BaseQueryVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/base/PageResult.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/base/PageResult.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/base/PageResult.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/base/PageResult.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/enums/DateTypeEnum.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/enums/DateTypeEnum.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/enums/DateTypeEnum.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/enums/DateTypeEnum.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchDeleteRetryDeadLetterVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchDeleteRetryDeadLetterVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchDeleteRetryDeadLetterVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchDeleteRetryDeadLetterVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchDeleteRetryTaskVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchDeleteRetryTaskVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchDeleteRetryTaskVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchDeleteRetryTaskVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchRollBackRetryDeadLetterVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchRollBackRetryDeadLetterVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchRollBackRetryDeadLetterVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/BatchRollBackRetryDeadLetterVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/GenerateRetryIdempotentIdVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/GenerateRetryIdempotentIdVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/GenerateRetryIdempotentIdVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/GenerateRetryIdempotentIdVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/GroupConfigQueryVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/GroupConfigQueryVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/GroupConfigQueryVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/GroupConfigQueryVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/GroupConfigRequestVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/GroupConfigRequestVO.java
similarity index 97%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/GroupConfigRequestVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/GroupConfigRequestVO.java
index 842bcefd..22eed9da 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/GroupConfigRequestVO.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/GroupConfigRequestVO.java
@@ -1,7 +1,7 @@
package com.aizuda.easy.retry.server.web.model.request;
import com.aizuda.easy.retry.common.core.constant.SystemConstants;
-import com.aizuda.easy.retry.server.enums.IdGeneratorMode;
+import com.aizuda.easy.retry.server.common.enums.IdGeneratorMode;
import lombok.Data;
import jakarta.validation.constraints.*;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/ManualTriggerTaskRequestVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/ManualTriggerTaskRequestVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/ManualTriggerTaskRequestVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/ManualTriggerTaskRequestVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/ParseLogsVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/ParseLogsVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/ParseLogsVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/ParseLogsVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryDeadLetterQueryVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryDeadLetterQueryVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryDeadLetterQueryVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryDeadLetterQueryVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskLogMessageQueryVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskLogMessageQueryVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskLogMessageQueryVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskLogMessageQueryVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskLogQueryVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskLogQueryVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskLogQueryVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskLogQueryVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskQueryVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskQueryVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskQueryVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskQueryVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskSaveRequestVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskSaveRequestVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskSaveRequestVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskSaveRequestVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskUpdateExecutorNameRequestVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskUpdateExecutorNameRequestVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskUpdateExecutorNameRequestVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskUpdateExecutorNameRequestVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskUpdateStatusRequestVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskUpdateStatusRequestVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskUpdateStatusRequestVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/RetryTaskUpdateStatusRequestVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/SceneConfigQueryVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/SceneConfigQueryVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/SceneConfigQueryVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/SceneConfigQueryVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/ServerNodeQueryVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/ServerNodeQueryVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/ServerNodeQueryVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/ServerNodeQueryVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/SystemUserQueryVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/SystemUserQueryVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/SystemUserQueryVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/SystemUserQueryVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/SystemUserRequestVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/SystemUserRequestVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/request/SystemUserRequestVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/SystemUserRequestVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/ActivePodQuantityResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/ActivePodQuantityResponseVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/ActivePodQuantityResponseVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/ActivePodQuantityResponseVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/DispatchQuantityResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/DispatchQuantityResponseVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/DispatchQuantityResponseVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/DispatchQuantityResponseVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/GroupConfigResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/GroupConfigResponseVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/GroupConfigResponseVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/GroupConfigResponseVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/NotifyConfigResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/NotifyConfigResponseVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/NotifyConfigResponseVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/NotifyConfigResponseVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryDeadLetterResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryDeadLetterResponseVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryDeadLetterResponseVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryDeadLetterResponseVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskLogMessageResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskLogMessageResponseVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskLogMessageResponseVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskLogMessageResponseVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskLogResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskLogResponseVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskLogResponseVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskLogResponseVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskResponseVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskResponseVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/RetryTaskResponseVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/SceneConfigResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/SceneConfigResponseVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/SceneConfigResponseVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/SceneConfigResponseVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/SceneQuantityRankResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/SceneQuantityRankResponseVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/SceneQuantityRankResponseVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/SceneQuantityRankResponseVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/ServerNodeResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/ServerNodeResponseVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/ServerNodeResponseVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/ServerNodeResponseVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/SystemUserResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/SystemUserResponseVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/SystemUserResponseVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/SystemUserResponseVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/TaskQuantityResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/TaskQuantityResponseVO.java
similarity index 100%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/web/model/response/TaskQuantityResponseVO.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/TaskQuantityResponseVO.java
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/DashBoardService.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/DashBoardService.java
similarity index 95%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/DashBoardService.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/DashBoardService.java
index 2cf01b3f..32b74562 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/DashBoardService.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/DashBoardService.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service;
+package com.aizuda.easy.retry.server.web.service;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.ServerNodeQueryVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/GroupConfigService.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/GroupConfigService.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/GroupConfigService.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/GroupConfigService.java
index ad75210c..1c4b8ca2 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/GroupConfigService.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/GroupConfigService.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service;
+package com.aizuda.easy.retry.server.web.service;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.GroupConfigQueryVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/NotifyConfigService.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/NotifyConfigService.java
similarity index 85%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/NotifyConfigService.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/NotifyConfigService.java
index 86b7c9de..6f9cd187 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/NotifyConfigService.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/NotifyConfigService.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service;
+package com.aizuda.easy.retry.server.web.service;
import com.aizuda.easy.retry.server.web.model.response.NotifyConfigResponseVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/RetryDeadLetterService.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/RetryDeadLetterService.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/RetryDeadLetterService.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/RetryDeadLetterService.java
index 801d01a8..9e14bc26 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/RetryDeadLetterService.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/RetryDeadLetterService.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service;
+package com.aizuda.easy.retry.server.web.service;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.BatchDeleteRetryDeadLetterVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/RetryTaskLogService.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/RetryTaskLogService.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/RetryTaskLogService.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/RetryTaskLogService.java
index 5986c088..61b13c1c 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/RetryTaskLogService.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/RetryTaskLogService.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service;
+package com.aizuda.easy.retry.server.web.service;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.RetryTaskLogMessageQueryVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/RetryTaskService.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/RetryTaskService.java
similarity index 77%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/RetryTaskService.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/RetryTaskService.java
index c7feaa09..de496caf 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/RetryTaskService.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/RetryTaskService.java
@@ -1,7 +1,14 @@
-package com.aizuda.easy.retry.server.service;
+package com.aizuda.easy.retry.server.web.service;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
-import com.aizuda.easy.retry.server.web.model.request.*;
+import com.aizuda.easy.retry.server.web.model.request.BatchDeleteRetryTaskVO;
+import com.aizuda.easy.retry.server.web.model.request.GenerateRetryIdempotentIdVO;
+import com.aizuda.easy.retry.server.web.model.request.ManualTriggerTaskRequestVO;
+import com.aizuda.easy.retry.server.web.model.request.ParseLogsVO;
+import com.aizuda.easy.retry.server.web.model.request.RetryTaskQueryVO;
+import com.aizuda.easy.retry.server.web.model.request.RetryTaskSaveRequestVO;
+import com.aizuda.easy.retry.server.web.model.request.RetryTaskUpdateExecutorNameRequestVO;
+import com.aizuda.easy.retry.server.web.model.request.RetryTaskUpdateStatusRequestVO;
import com.aizuda.easy.retry.server.web.model.response.RetryTaskResponseVO;
import java.util.List;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/SceneConfigService.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/SceneConfigService.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/SceneConfigService.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/SceneConfigService.java
index f1a76242..5b1bc2ec 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/SceneConfigService.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/SceneConfigService.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service;
+package com.aizuda.easy.retry.server.web.service;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.SceneConfigQueryVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/SystemUserService.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/SystemUserService.java
similarity index 95%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/SystemUserService.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/SystemUserService.java
index c128dce5..81557090 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/SystemUserService.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/SystemUserService.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service;
+package com.aizuda.easy.retry.server.web.service;
import com.aizuda.easy.retry.template.datasource.persistence.po.SystemUser;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/DispatchQuantityResponseVOConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/DispatchQuantityResponseVOConverter.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/DispatchQuantityResponseVOConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/DispatchQuantityResponseVOConverter.java
index 49e18f6f..aafec2aa 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/DispatchQuantityResponseVOConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/DispatchQuantityResponseVOConverter.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.server.web.model.response.DispatchQuantityResponseVO;
import com.aizuda.easy.retry.template.datasource.persistence.dataobject.DispatchQuantityResponseDO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/GroupConfigConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/GroupConfigConverter.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/GroupConfigConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/GroupConfigConverter.java
index fedc59e5..4dbbdb9d 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/GroupConfigConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/GroupConfigConverter.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.template.datasource.persistence.po.GroupConfig;
import com.aizuda.easy.retry.server.web.model.request.GroupConfigRequestVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/GroupConfigResponseVOConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/GroupConfigResponseVOConverter.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/GroupConfigResponseVOConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/GroupConfigResponseVOConverter.java
index 77122bee..995d83f5 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/GroupConfigResponseVOConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/GroupConfigResponseVOConverter.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.template.datasource.persistence.po.GroupConfig;
import com.aizuda.easy.retry.server.web.model.response.GroupConfigResponseVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/NotifyConfigConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/NotifyConfigConverter.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/NotifyConfigConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/NotifyConfigConverter.java
index 2bf463fe..842764d5 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/NotifyConfigConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/NotifyConfigConverter.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.template.datasource.persistence.po.NotifyConfig;
import com.aizuda.easy.retry.server.web.model.request.GroupConfigRequestVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/NotifyConfigResponseVOConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/NotifyConfigResponseVOConverter.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/NotifyConfigResponseVOConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/NotifyConfigResponseVOConverter.java
index 366c146c..57c69e6b 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/NotifyConfigResponseVOConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/NotifyConfigResponseVOConverter.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.template.datasource.persistence.po.NotifyConfig;
import com.aizuda.easy.retry.server.web.model.response.NotifyConfigResponseVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryDeadLetterResponseVOConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/RetryDeadLetterResponseVOConverter.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryDeadLetterResponseVOConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/RetryDeadLetterResponseVOConverter.java
index ddbdd39a..785f5a10 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryDeadLetterResponseVOConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/RetryDeadLetterResponseVOConverter.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryDeadLetter;
import com.aizuda.easy.retry.server.web.model.response.RetryDeadLetterResponseVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryTaskLogResponseVOConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/RetryTaskLogResponseVOConverter.java
similarity index 94%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryTaskLogResponseVOConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/RetryTaskLogResponseVOConverter.java
index 5b495fbe..c85e7bf2 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryTaskLogResponseVOConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/RetryTaskLogResponseVOConverter.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTaskLog;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTaskLogMessage;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryTaskResponseVOConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/RetryTaskResponseVOConverter.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryTaskResponseVOConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/RetryTaskResponseVOConverter.java
index bb85ed9e..4f7a3cbc 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/RetryTaskResponseVOConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/RetryTaskResponseVOConverter.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import com.aizuda.easy.retry.server.web.model.response.RetryTaskResponseVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/SceneConfigConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/SceneConfigConverter.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/SceneConfigConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/SceneConfigConverter.java
index 80778d76..48852a7f 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/SceneConfigConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/SceneConfigConverter.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.template.datasource.persistence.po.SceneConfig;
import com.aizuda.easy.retry.server.web.model.request.GroupConfigRequestVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/SceneConfigResponseVOConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/SceneConfigResponseVOConverter.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/SceneConfigResponseVOConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/SceneConfigResponseVOConverter.java
index d8f8ff76..f04ea75f 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/SceneConfigResponseVOConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/SceneConfigResponseVOConverter.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.template.datasource.persistence.po.SceneConfig;
import com.aizuda.easy.retry.server.web.model.response.SceneConfigResponseVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/SceneQuantityRankResponseVOConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/SceneQuantityRankResponseVOConverter.java
similarity index 81%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/SceneQuantityRankResponseVOConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/SceneQuantityRankResponseVOConverter.java
index d8c8d914..8c30bc3d 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/SceneQuantityRankResponseVOConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/SceneQuantityRankResponseVOConverter.java
@@ -1,7 +1,6 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.server.web.model.response.SceneQuantityRankResponseVO;
-import com.aizuda.easy.retry.template.datasource.persistence.dataobject.DispatchQuantityResponseDO;
import com.aizuda.easy.retry.template.datasource.persistence.dataobject.SceneQuantityRankResponseDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/ServerNodeResponseVOConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/ServerNodeResponseVOConverter.java
similarity index 83%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/ServerNodeResponseVOConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/ServerNodeResponseVOConverter.java
index dceb6756..c3211ce9 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/ServerNodeResponseVOConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/ServerNodeResponseVOConverter.java
@@ -1,10 +1,8 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.template.datasource.persistence.po.ServerNode;
import com.aizuda.easy.retry.server.web.model.response.ServerNodeResponseVO;
import org.mapstruct.Mapper;
-import org.mapstruct.Mapping;
-import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import java.util.List;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/SystemUserResponseVOConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/SystemUserResponseVOConverter.java
similarity index 91%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/SystemUserResponseVOConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/SystemUserResponseVOConverter.java
index 590ebb5d..8d372e10 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/SystemUserResponseVOConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/SystemUserResponseVOConverter.java
@@ -1,4 +1,4 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.template.datasource.persistence.po.SystemUser;
import com.aizuda.easy.retry.server.web.model.response.SystemUserResponseVO;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/TaskContextConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/TaskContextConverter.java
similarity index 82%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/TaskContextConverter.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/TaskContextConverter.java
index 1d066082..88726a40 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/convert/TaskContextConverter.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/TaskContextConverter.java
@@ -1,7 +1,7 @@
-package com.aizuda.easy.retry.server.service.convert;
+package com.aizuda.easy.retry.server.web.service.convert;
import com.aizuda.easy.retry.server.model.dto.RetryTaskDTO;
-import com.aizuda.easy.retry.server.support.generator.task.TaskContext;
+import com.aizuda.easy.retry.server.retry.task.generator.task.TaskContext;
import com.aizuda.easy.retry.server.web.model.request.RetryTaskSaveRequestVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/DashBoardServiceImpl.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java
similarity index 92%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/DashBoardServiceImpl.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java
index ffc1f698..92b8d064 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/DashBoardServiceImpl.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java
@@ -1,25 +1,14 @@
-package com.aizuda.easy.retry.server.service.impl;
+package com.aizuda.easy.retry.server.web.service.impl;
-import com.aizuda.easy.retry.common.core.enums.NodeTypeEnum;
-import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
+import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.common.core.model.Result;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
-import com.aizuda.easy.retry.server.dto.ServerNodeExtAttrs;
-import com.aizuda.easy.retry.server.service.DashBoardService;
-import com.aizuda.easy.retry.server.service.convert.DispatchQuantityResponseVOConverter;
-import com.aizuda.easy.retry.server.service.convert.SceneQuantityRankResponseVOConverter;
-import com.aizuda.easy.retry.server.service.convert.ServerNodeResponseVOConverter;
-import com.aizuda.easy.retry.server.support.cache.CacheConsumerGroup;
-import com.aizuda.easy.retry.server.support.register.ServerRegister;
-import com.aizuda.easy.retry.server.web.model.base.PageResult;
-import com.aizuda.easy.retry.server.web.model.enums.DateTypeEnum;
-import com.aizuda.easy.retry.server.web.model.request.ServerNodeQueryVO;
-import com.aizuda.easy.retry.server.web.model.response.ActivePodQuantityResponseVO;
-import com.aizuda.easy.retry.server.web.model.response.DispatchQuantityResponseVO;
-import com.aizuda.easy.retry.server.web.model.response.SceneQuantityRankResponseVO;
-import com.aizuda.easy.retry.server.web.model.response.ServerNodeResponseVO;
-import com.aizuda.easy.retry.server.web.model.response.TaskQuantityResponseVO;
+import com.aizuda.easy.retry.server.common.cache.CacheConsumerGroup;
+import com.aizuda.easy.retry.server.common.dto.ServerNodeExtAttrs;
+import com.aizuda.easy.retry.server.common.register.ServerRegister;
+import com.aizuda.easy.retry.server.web.service.convert.DispatchQuantityResponseVOConverter;
+import com.aizuda.easy.retry.server.web.service.convert.SceneQuantityRankResponseVOConverter;
import com.aizuda.easy.retry.template.datasource.persistence.dataobject.DispatchQuantityResponseDO;
import com.aizuda.easy.retry.template.datasource.persistence.dataobject.SceneQuantityRankResponseDO;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.RetryTaskLogMapper;
@@ -27,11 +16,23 @@ import com.aizuda.easy.retry.template.datasource.persistence.mapper.RetryTaskLog
import com.aizuda.easy.retry.template.datasource.persistence.mapper.ServerNodeMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTaskLog;
import com.aizuda.easy.retry.template.datasource.persistence.po.ServerNode;
+import com.aizuda.easy.retry.server.web.service.convert.ServerNodeResponseVOConverter;
+import com.aizuda.easy.retry.server.web.model.base.PageResult;
+import com.aizuda.easy.retry.server.web.model.request.ServerNodeQueryVO;
+import com.aizuda.easy.retry.server.web.model.response.ServerNodeResponseVO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.aizuda.easy.retry.common.core.enums.NodeTypeEnum;
+import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
+import com.aizuda.easy.retry.server.web.service.DashBoardService;
+import com.aizuda.easy.retry.server.web.model.enums.DateTypeEnum;
+import com.aizuda.easy.retry.server.web.model.response.ActivePodQuantityResponseVO;
+import com.aizuda.easy.retry.server.web.model.response.DispatchQuantityResponseVO;
+import com.aizuda.easy.retry.server.web.model.response.SceneQuantityRankResponseVO;
+import com.aizuda.easy.retry.server.web.model.response.TaskQuantityResponseVO;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.google.common.collect.Sets;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -119,12 +120,12 @@ public class DashBoardServiceImpl implements DashBoardService {
@Override
public List rankSceneQuantity(String groupName, String type, String startTime, String endTime) {
LocalDateTime startDateTime = LocalDateTime.now();
- if (StringUtils.isNotBlank(startTime)) {
+ if (StrUtil.isNotBlank(startTime)) {
startDateTime = LocalDateTime.of(LocalDate.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd")), LocalTime.MIN);
}
LocalDateTime endDateTime = LocalDateTime.now();
- if (StringUtils.isNotBlank(endTime)) {
+ if (StrUtil.isNotBlank(endTime)) {
endDateTime = LocalDateTime.of(LocalDate.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd")), LocalTime.MAX);
}
@@ -142,12 +143,12 @@ public class DashBoardServiceImpl implements DashBoardService {
DateTypeEnum dateTypeEnum = DateTypeEnum.valueOf(type.toUpperCase());
LocalDateTime startDateTime = LocalDateTime.now();
- if (StringUtils.isNotBlank(startTime)) {
+ if (StrUtil.isNotBlank(startTime)) {
startDateTime = LocalDateTime.of(LocalDate.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd")), LocalTime.MIN);
}
LocalDateTime endDateTime = LocalDateTime.now();
- if (StringUtils.isNotBlank(endTime)) {
+ if (StrUtil.isNotBlank(endTime)) {
endDateTime = LocalDateTime.of(LocalDate.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd")), LocalTime.MAX);
}
@@ -183,7 +184,7 @@ public class DashBoardServiceImpl implements DashBoardService {
PageDTO pageDTO = new PageDTO<>(queryVO.getPage(), queryVO.getSize());
LambdaQueryWrapper serverNodeLambdaQueryWrapper = new LambdaQueryWrapper<>();
- if (StringUtils.isNotBlank(queryVO.getGroupName())) {
+ if (StrUtil.isNotBlank(queryVO.getGroupName())) {
serverNodeLambdaQueryWrapper.eq(ServerNode::getGroupName, queryVO.getGroupName());
}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/GroupConfigServiceImpl.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/GroupConfigServiceImpl.java
similarity index 95%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/GroupConfigServiceImpl.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/GroupConfigServiceImpl.java
index c18d0595..ee48c51c 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/GroupConfigServiceImpl.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/GroupConfigServiceImpl.java
@@ -1,16 +1,17 @@
-package com.aizuda.easy.retry.server.service.impl;
+package com.aizuda.easy.retry.server.web.service.impl;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.HashUtil;
+import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
-import com.aizuda.easy.retry.server.enums.IdGeneratorMode;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.service.GroupConfigService;
-import com.aizuda.easy.retry.server.service.convert.GroupConfigConverter;
-import com.aizuda.easy.retry.server.service.convert.GroupConfigResponseVOConverter;
-import com.aizuda.easy.retry.server.service.convert.NotifyConfigConverter;
-import com.aizuda.easy.retry.server.service.convert.SceneConfigConverter;
-import com.aizuda.easy.retry.server.support.handler.ConfigVersionSyncHandler;
+import com.aizuda.easy.retry.server.common.enums.IdGeneratorMode;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.retry.task.support.handler.ConfigVersionSyncHandler;
+import com.aizuda.easy.retry.server.web.service.GroupConfigService;
+import com.aizuda.easy.retry.server.web.service.convert.GroupConfigConverter;
+import com.aizuda.easy.retry.server.web.service.convert.GroupConfigResponseVOConverter;
+import com.aizuda.easy.retry.server.web.service.convert.NotifyConfigConverter;
+import com.aizuda.easy.retry.server.web.service.convert.SceneConfigConverter;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.GroupConfigQueryVO;
import com.aizuda.easy.retry.server.web.model.request.GroupConfigRequestVO;
@@ -23,7 +24,6 @@ import com.aizuda.easy.retry.template.datasource.persistence.po.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -147,7 +147,7 @@ public class GroupConfigServiceImpl implements GroupConfigService {
public PageResult> getGroupConfigForPage(GroupConfigQueryVO queryVO) {
LambdaQueryWrapper groupConfigLambdaQueryWrapper = new LambdaQueryWrapper<>();
- if (StringUtils.isNotBlank(queryVO.getGroupName())) {
+ if (StrUtil.isNotBlank(queryVO.getGroupName())) {
groupConfigLambdaQueryWrapper.like(GroupConfig::getGroupName, queryVO.getGroupName());
}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/NotifyConfigServiceImpl.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/NotifyConfigServiceImpl.java
similarity index 82%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/NotifyConfigServiceImpl.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/NotifyConfigServiceImpl.java
index d0957db2..4b08fb53 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/NotifyConfigServiceImpl.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/NotifyConfigServiceImpl.java
@@ -1,10 +1,10 @@
-package com.aizuda.easy.retry.server.service.impl;
+package com.aizuda.easy.retry.server.web.service.impl;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.NotifyConfigMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.NotifyConfig;
-import com.aizuda.easy.retry.server.service.NotifyConfigService;
+import com.aizuda.easy.retry.server.web.service.NotifyConfigService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.aizuda.easy.retry.server.service.convert.NotifyConfigResponseVOConverter;
+import com.aizuda.easy.retry.server.web.service.convert.NotifyConfigResponseVOConverter;
import com.aizuda.easy.retry.server.web.model.response.NotifyConfigResponseVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/RetryDeadLetterServiceImpl.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/RetryDeadLetterServiceImpl.java
similarity index 89%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/RetryDeadLetterServiceImpl.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/RetryDeadLetterServiceImpl.java
index 34d6dbd3..98134f84 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/RetryDeadLetterServiceImpl.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/RetryDeadLetterServiceImpl.java
@@ -1,13 +1,15 @@
-package com.aizuda.easy.retry.server.service.impl;
+package com.aizuda.easy.retry.server.web.service.impl;
import cn.hutool.core.lang.Assert;
+import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
-import com.aizuda.easy.retry.server.enums.TaskTypeEnum;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
-import com.aizuda.easy.retry.server.service.RetryDeadLetterService;
-import com.aizuda.easy.retry.server.service.convert.RetryDeadLetterResponseVOConverter;
-import com.aizuda.easy.retry.server.service.convert.RetryTaskConverter;
-import com.aizuda.easy.retry.server.support.strategy.WaitStrategies;
+
+import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.retry.task.support.strategy.WaitStrategies;
+import com.aizuda.easy.retry.server.web.service.RetryDeadLetterService;
+import com.aizuda.easy.retry.server.web.service.convert.RetryDeadLetterResponseVOConverter;
+import com.aizuda.easy.retry.server.retry.task.support.RetryTaskConverter;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.BatchDeleteRetryDeadLetterVO;
import com.aizuda.easy.retry.server.web.model.request.BatchRollBackRetryDeadLetterVO;
@@ -22,7 +24,6 @@ import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTaskLog;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -51,26 +52,26 @@ public class RetryDeadLetterServiceImpl implements RetryDeadLetterService {
PageDTO pageDTO = new PageDTO<>(queryVO.getPage(), queryVO.getSize());
- if (StringUtils.isBlank(queryVO.getGroupName())) {
+ if (StrUtil.isBlank(queryVO.getGroupName())) {
return new PageResult<>(pageDTO, new ArrayList<>());
}
LambdaQueryWrapper retryDeadLetterLambdaQueryWrapper = new LambdaQueryWrapper<>();
retryDeadLetterLambdaQueryWrapper.eq(RetryDeadLetter::getGroupName, queryVO.getGroupName());
- if (StringUtils.isNotBlank(queryVO.getSceneName())) {
+ if (StrUtil.isNotBlank(queryVO.getSceneName())) {
retryDeadLetterLambdaQueryWrapper.eq(RetryDeadLetter::getSceneName, queryVO.getSceneName());
}
- if (StringUtils.isNotBlank(queryVO.getBizNo())) {
+ if (StrUtil.isNotBlank(queryVO.getBizNo())) {
retryDeadLetterLambdaQueryWrapper.eq(RetryDeadLetter::getBizNo, queryVO.getBizNo());
}
- if (StringUtils.isNotBlank(queryVO.getIdempotentId())) {
+ if (StrUtil.isNotBlank(queryVO.getIdempotentId())) {
retryDeadLetterLambdaQueryWrapper.eq(RetryDeadLetter::getIdempotentId, queryVO.getIdempotentId());
}
- if (StringUtils.isNotBlank(queryVO.getUniqueId())) {
+ if (StrUtil.isNotBlank(queryVO.getUniqueId())) {
retryDeadLetterLambdaQueryWrapper.eq(RetryDeadLetter::getUniqueId, queryVO.getUniqueId());
}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/RetryTaskLogServiceImpl.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/RetryTaskLogServiceImpl.java
similarity index 85%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/RetryTaskLogServiceImpl.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/RetryTaskLogServiceImpl.java
index 9f8c0a0a..edb49d26 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/RetryTaskLogServiceImpl.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/RetryTaskLogServiceImpl.java
@@ -1,5 +1,6 @@
-package com.aizuda.easy.retry.server.service.impl;
+package com.aizuda.easy.retry.server.web.service.impl;
+import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.RetryTaskLogMapper;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.RetryTaskLogMessageMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTaskLog;
@@ -9,11 +10,10 @@ import com.aizuda.easy.retry.server.web.model.response.RetryTaskLogMessageRespon
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
-import com.aizuda.easy.retry.server.service.RetryTaskLogService;
-import com.aizuda.easy.retry.server.service.convert.RetryTaskLogResponseVOConverter;
+import com.aizuda.easy.retry.server.web.service.RetryTaskLogService;
+import com.aizuda.easy.retry.server.web.service.convert.RetryTaskLogResponseVOConverter;
import com.aizuda.easy.retry.server.web.model.request.RetryTaskLogQueryVO;
import com.aizuda.easy.retry.server.web.model.response.RetryTaskLogResponseVO;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -37,19 +37,19 @@ public class RetryTaskLogServiceImpl implements RetryTaskLogService {
PageDTO pageDTO = new PageDTO<>(queryVO.getPage(), queryVO.getSize());
LambdaQueryWrapper retryTaskLogLambdaQueryWrapper = new LambdaQueryWrapper<>();
- if (StringUtils.isNotBlank(queryVO.getGroupName())) {
+ if (StrUtil.isNotBlank(queryVO.getGroupName())) {
retryTaskLogLambdaQueryWrapper.eq(RetryTaskLog::getGroupName, queryVO.getGroupName());
}
- if (StringUtils.isNotBlank(queryVO.getSceneName())) {
+ if (StrUtil.isNotBlank(queryVO.getSceneName())) {
retryTaskLogLambdaQueryWrapper.eq(RetryTaskLog::getSceneName, queryVO.getSceneName());
}
- if (StringUtils.isNotBlank(queryVO.getBizNo())) {
+ if (StrUtil.isNotBlank(queryVO.getBizNo())) {
retryTaskLogLambdaQueryWrapper.eq(RetryTaskLog::getBizNo, queryVO.getBizNo());
}
- if (StringUtils.isNotBlank(queryVO.getUniqueId())) {
+ if (StrUtil.isNotBlank(queryVO.getUniqueId())) {
retryTaskLogLambdaQueryWrapper.eq(RetryTaskLog::getUniqueId, queryVO.getUniqueId());
}
- if (StringUtils.isNotBlank(queryVO.getIdempotentId())) {
+ if (StrUtil.isNotBlank(queryVO.getIdempotentId())) {
retryTaskLogLambdaQueryWrapper.eq(RetryTaskLog::getIdempotentId, queryVO.getIdempotentId());
}
@@ -70,10 +70,10 @@ public class RetryTaskLogServiceImpl implements RetryTaskLogService {
PageDTO pageDTO = new PageDTO<>(queryVO.getPage(), queryVO.getSize());
LambdaQueryWrapper retryTaskLogLambdaQueryWrapper = new LambdaQueryWrapper<>();
- if (StringUtils.isNotBlank(queryVO.getGroupName())) {
+ if (StrUtil.isNotBlank(queryVO.getGroupName())) {
retryTaskLogLambdaQueryWrapper.eq(RetryTaskLogMessage::getGroupName, queryVO.getGroupName());
}
- if (StringUtils.isNotBlank(queryVO.getUniqueId())) {
+ if (StrUtil.isNotBlank(queryVO.getUniqueId())) {
retryTaskLogLambdaQueryWrapper.eq(RetryTaskLogMessage::getUniqueId, queryVO.getUniqueId());
}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/RetryTaskServiceImpl.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/RetryTaskServiceImpl.java
similarity index 87%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/RetryTaskServiceImpl.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/RetryTaskServiceImpl.java
index 92194635..ace0394b 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/RetryTaskServiceImpl.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/RetryTaskServiceImpl.java
@@ -1,37 +1,45 @@
-package com.aizuda.easy.retry.server.service.impl;
+package com.aizuda.easy.retry.server.web.service.impl;
import akka.actor.ActorRef;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Pair;
+import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.client.model.DispatchRetryResultDTO;
import com.aizuda.easy.retry.client.model.GenerateRetryIdempotentIdDTO;
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
import com.aizuda.easy.retry.common.core.model.Result;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
-import com.aizuda.easy.retry.server.akka.ActorGenerator;
-import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
-import com.aizuda.easy.retry.server.enums.TaskGeneratorScene;
-import com.aizuda.easy.retry.server.enums.TaskTypeEnum;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
+import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
+import com.aizuda.easy.retry.server.common.enums.TaskGeneratorScene;
+import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.model.dto.RetryTaskDTO;
-import com.aizuda.easy.retry.server.service.RetryTaskService;
-import com.aizuda.easy.retry.server.service.convert.RetryTaskResponseVOConverter;
-import com.aizuda.easy.retry.server.service.convert.TaskContextConverter;
-import com.aizuda.easy.retry.server.support.IdempotentStrategy;
-import com.aizuda.easy.retry.server.support.WaitStrategy;
-import com.aizuda.easy.retry.server.support.context.CallbackRetryContext;
-import com.aizuda.easy.retry.server.support.context.MaxAttemptsPersistenceRetryContext;
-import com.aizuda.easy.retry.server.support.generator.TaskGenerator;
-import com.aizuda.easy.retry.server.support.generator.task.TaskContext;
-import com.aizuda.easy.retry.server.support.handler.ClientNodeAllocateHandler;
-import com.aizuda.easy.retry.server.support.retry.RetryBuilder;
-import com.aizuda.easy.retry.server.support.retry.RetryExecutor;
-import com.aizuda.easy.retry.server.support.strategy.FilterStrategies;
-import com.aizuda.easy.retry.server.support.strategy.StopStrategies;
-import com.aizuda.easy.retry.server.support.strategy.WaitStrategies;
+import com.aizuda.easy.retry.server.retry.task.generator.task.TaskContext;
+import com.aizuda.easy.retry.server.retry.task.generator.task.TaskGenerator;
+import com.aizuda.easy.retry.server.retry.task.support.IdempotentStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.WaitStrategy;
+import com.aizuda.easy.retry.server.retry.task.support.context.CallbackRetryContext;
+import com.aizuda.easy.retry.server.retry.task.support.context.MaxAttemptsPersistenceRetryContext;
+import com.aizuda.easy.retry.server.common.handler.ClientNodeAllocateHandler;
+import com.aizuda.easy.retry.server.retry.task.support.retry.RetryBuilder;
+import com.aizuda.easy.retry.server.retry.task.support.retry.RetryExecutor;
+import com.aizuda.easy.retry.server.retry.task.support.strategy.FilterStrategies;
+import com.aizuda.easy.retry.server.retry.task.support.strategy.StopStrategies;
+import com.aizuda.easy.retry.server.retry.task.support.strategy.WaitStrategies;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
-import com.aizuda.easy.retry.server.web.model.request.*;
+import com.aizuda.easy.retry.server.web.model.request.BatchDeleteRetryTaskVO;
+import com.aizuda.easy.retry.server.web.model.request.GenerateRetryIdempotentIdVO;
+import com.aizuda.easy.retry.server.web.model.request.ManualTriggerTaskRequestVO;
+import com.aizuda.easy.retry.server.web.model.request.ParseLogsVO;
+import com.aizuda.easy.retry.server.web.model.request.RetryTaskQueryVO;
+import com.aizuda.easy.retry.server.web.model.request.RetryTaskSaveRequestVO;
+import com.aizuda.easy.retry.server.web.model.request.RetryTaskUpdateExecutorNameRequestVO;
+import com.aizuda.easy.retry.server.web.model.request.RetryTaskUpdateStatusRequestVO;
import com.aizuda.easy.retry.server.web.model.response.RetryTaskResponseVO;
+import com.aizuda.easy.retry.server.web.service.RetryTaskService;
+import com.aizuda.easy.retry.server.web.service.convert.RetryTaskResponseVOConverter;
+import com.aizuda.easy.retry.server.web.service.convert.TaskContextConverter;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.access.TaskAccess;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.RetryTaskLogMapper;
@@ -44,7 +52,6 @@ import com.aizuda.easy.retry.template.datasource.utils.RequestDataHelper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.HttpEntity;
@@ -55,7 +62,11 @@ import org.springframework.web.client.RestTemplate;
import java.text.MessageFormat;
import java.time.LocalDateTime;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -94,22 +105,22 @@ public class RetryTaskServiceImpl implements RetryTaskService {
LambdaQueryWrapper retryTaskLambdaQueryWrapper = new LambdaQueryWrapper<>();
- if (StringUtils.isNotBlank(queryVO.getGroupName())) {
+ if (StrUtil.isNotBlank(queryVO.getGroupName())) {
retryTaskLambdaQueryWrapper.eq(RetryTask::getGroupName, queryVO.getGroupName());
} else {
return new PageResult<>(pageDTO, new ArrayList<>());
}
- if (StringUtils.isNotBlank(queryVO.getSceneName())) {
+ if (StrUtil.isNotBlank(queryVO.getSceneName())) {
retryTaskLambdaQueryWrapper.eq(RetryTask::getSceneName, queryVO.getSceneName());
}
- if (StringUtils.isNotBlank(queryVO.getBizNo())) {
+ if (StrUtil.isNotBlank(queryVO.getBizNo())) {
retryTaskLambdaQueryWrapper.eq(RetryTask::getBizNo, queryVO.getBizNo());
}
- if (StringUtils.isNotBlank(queryVO.getIdempotentId())) {
+ if (StrUtil.isNotBlank(queryVO.getIdempotentId())) {
retryTaskLambdaQueryWrapper.eq(RetryTask::getIdempotentId, queryVO.getIdempotentId());
}
- if (StringUtils.isNotBlank(queryVO.getUniqueId())) {
+ if (StrUtil.isNotBlank(queryVO.getUniqueId())) {
retryTaskLambdaQueryWrapper.eq(RetryTask::getUniqueId, queryVO.getUniqueId());
}
if (Objects.nonNull(queryVO.getRetryStatus())) {
@@ -268,7 +279,7 @@ public class RetryTaskServiceImpl implements RetryTaskService {
// 查找匹配的内容并输出
while (matcher.find()) {
String extractedData = matcher.group(1);
- if (StringUtils.isBlank(extractedData)) {
+ if (StrUtil.isBlank(extractedData)) {
continue;
}
@@ -377,7 +388,7 @@ public class RetryTaskServiceImpl implements RetryTaskService {
Pair pair = executor.filter();
Assert.isTrue(pair.getKey(), () -> new EasyRetryServerException(pair.getValue().toString()));
-
+
productExecUnitActor(executor, ActorGenerator.execCallbackUnitActor());
}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/SceneConfigServiceImpl.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/SceneConfigServiceImpl.java
similarity index 87%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/SceneConfigServiceImpl.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/SceneConfigServiceImpl.java
index 03a703e8..e2057195 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/SceneConfigServiceImpl.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/SceneConfigServiceImpl.java
@@ -1,15 +1,15 @@
-package com.aizuda.easy.retry.server.service.impl;
+package com.aizuda.easy.retry.server.web.service.impl;
+import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.SceneConfigMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.SceneConfig;
-import com.aizuda.easy.retry.server.service.convert.SceneConfigResponseVOConverter;
+import com.aizuda.easy.retry.server.web.service.convert.SceneConfigResponseVOConverter;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
-import com.aizuda.easy.retry.server.service.SceneConfigService;
+import com.aizuda.easy.retry.server.web.service.SceneConfigService;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.SceneConfigQueryVO;
import com.aizuda.easy.retry.server.web.model.response.SceneConfigResponseVO;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -30,7 +30,7 @@ public class SceneConfigServiceImpl implements SceneConfigService {
PageDTO pageDTO = new PageDTO<>(queryVO.getPage(), queryVO.getSize());
LambdaQueryWrapper sceneConfigLambdaQueryWrapper = new LambdaQueryWrapper<>();
- if (StringUtils.isNotBlank(queryVO.getSceneName())) {
+ if (StrUtil.isNotBlank(queryVO.getSceneName())) {
sceneConfigLambdaQueryWrapper.eq(SceneConfig::getSceneName, queryVO.getSceneName());
}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/SystemUserServiceImpl.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/SystemUserServiceImpl.java
similarity index 96%
rename from easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/SystemUserServiceImpl.java
rename to easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/SystemUserServiceImpl.java
index ddd621af..2d5b08b1 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/service/impl/SystemUserServiceImpl.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/SystemUserServiceImpl.java
@@ -1,26 +1,25 @@
-package com.aizuda.easy.retry.server.service.impl;
+package com.aizuda.easy.retry.server.web.service.impl;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
-import com.aizuda.easy.retry.server.exception.EasyRetryServerException;
+import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.SystemUserMapper;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.SystemUserPermissionMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.SystemUser;
import com.aizuda.easy.retry.template.datasource.persistence.po.SystemUserPermission;
-import com.aizuda.easy.retry.server.service.SystemUserService;
+import com.aizuda.easy.retry.server.web.service.SystemUserService;
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
-import com.aizuda.easy.retry.server.service.convert.SystemUserResponseVOConverter;
+import com.aizuda.easy.retry.server.web.service.convert.SystemUserResponseVOConverter;
import com.aizuda.easy.retry.server.web.annotation.RoleEnum;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.SystemUserQueryVO;
import com.aizuda.easy.retry.server.web.model.request.SystemUserRequestVO;
import com.aizuda.easy.retry.server.web.model.response.SystemUserResponseVO;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -171,7 +170,7 @@ public class SystemUserServiceImpl implements SystemUserService {
LambdaQueryWrapper systemUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
- if (StringUtils.isNotBlank(queryVO.getUsername())) {
+ if (StrUtil.isNotBlank(queryVO.getUsername())) {
systemUserLambdaQueryWrapper.like(SystemUser::getUsername, "%" + queryVO.getUsername() + "%");
}
diff --git a/easy-retry-server/easy-retry-server-web/src/main/resources/META-INF/spring.factories b/easy-retry-server/easy-retry-server-web/src/main/resources/META-INF/spring.factories
new file mode 100644
index 00000000..3825379c
--- /dev/null
+++ b/easy-retry-server/easy-retry-server-web/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,2 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ com.aizuda.easy.retry.server.web.config.EasyRetryServerWebAutoConfiguration
diff --git a/easy-retry-server/pom.xml b/easy-retry-server/pom.xml
index b19a97cd..f75010a5 100644
--- a/easy-retry-server/pom.xml
+++ b/easy-retry-server/pom.xml
@@ -10,10 +10,18 @@
easy-retry-server
- jar
+ pom
easy-retry-server
easy-retry-server
+
+ easy-retry-server-common
+ easy-retry-server-web
+ easy-retry-server-retry-task
+ easy-retry-server-job-task
+ easy-retry-server-starter
+
+
17
true
@@ -26,123 +34,83 @@
32.0.0-jre
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.springframework.boot
- spring-boot-starter-validation
-
-
- com.baomidou
- mybatis-plus-boot-starter
-
-
- com.typesafe.akka
- akka-actor-typed_2.13
- ${akka.version}
-
-
- com.typesafe.akka
- akka-actor-testkit-typed_2.13
- ${akka.version}
- test
-
-
- com.google.guava
- guava
- ${guava.version}
-
-
- org.projectlombok
- lombok
- true
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
- com.aizuda
- easy-retry-common-server-api
-
-
- com.aizuda
- easy-retry-common-core
-
-
- com.aizuda
- easy-retry-common-client-api
-
-
- com.auth0
- java-jwt
- ${java-jwt.version}
-
-
- io.netty
- netty-all
-
-
- com.squareup.okhttp3
- okhttp
- ${okhttp.version}
-
-
- commons-lang
- commons-lang
- ${commons-lang.version}
-
-
- org.mapstruct
- mapstruct
- ${org.mapstruct.version}
- provided
-
-
- org.mapstruct
- mapstruct-processor
- ${org.mapstruct.version}
-
-
- org.springframework.boot
- spring-boot-configuration-processor
- true
-
-
- org.perf4j
- perf4j
- ${perf4j.version}
-
-
- com.github.rholder
- guava-retrying
-
-
- junit
- junit
- test
-
-
- com.aizuda
- easy-retry-datasource-template
-
-
- com.aizuda
- easy-retry-mysql-datasource
-
-
- com.aizuda
- easy-retry-postgres-datasource
-
-
- com.aizuda
- easy-retry-mariadb-datasource
-
-
+
+
+
+ com.aizuda
+ easy-retry-server-common
+ ${revision}
+
+
+ com.aizuda
+ easy-retry-server-web
+ ${revision}
+
+
+ com.aizuda
+ easy-retry-server-retry-task
+ ${revision}
+
+
+ com.aizuda
+ easy-retry-server-job-task
+ ${revision}
+
+
+ com.typesafe.akka
+ akka-actor-typed_2.13
+ ${akka.version}
+
+
+ com.typesafe.akka
+ akka-actor-testkit-typed_2.13
+ ${akka.version}
+ test
+
+
+ com.google.guava
+ guava
+ ${guava.version}
+
+
+ org.projectlombok
+ lombok
+ 1.18.28
+ true
+
+
+ com.auth0
+ java-jwt
+ ${java-jwt.version}
+
+
+ com.squareup.okhttp3
+ okhttp
+ ${okhttp.version}
+
+
+ commons-lang
+ commons-lang
+ ${commons-lang.version}
+
+
+ org.mapstruct
+ mapstruct
+ ${org.mapstruct.version}
+
+
+ org.mapstruct
+ mapstruct-processor
+ ${org.mapstruct.version}
+
+
+ org.perf4j
+ perf4j
+ ${perf4j.version}
+
+
+
+
easy-retry-server
diff --git a/easy-retry-server/src/main/resources/admin/css/app.f24fef3a.css b/easy-retry-server/src/main/resources/admin/css/app.f24fef3a.css
deleted file mode 100644
index fb317a01..00000000
--- a/easy-retry-server/src/main/resources/admin/css/app.f24fef3a.css
+++ /dev/null
@@ -1 +0,0 @@
-.ant-pro-header-menu .anticon{margin-right:8px}.ant-pro-header-menu .ant-dropdown-menu-item{min-width:160px}.ant-pro-drop-down{line-height:64px;vertical-align:top;cursor:pointer}.ant-pro-drop-down>i{font-size:16px!important;-webkit-transform:none!important;transform:none!important}.ant-pro-drop-down>i svg{position:relative;top:-1px}#userLayout.user-layout-wrapper[data-v-77578f85]{height:100%}#userLayout.user-layout-wrapper.mobile .container .main[data-v-77578f85]{max-width:368px;width:98%}#userLayout.user-layout-wrapper .container[data-v-77578f85]{width:100%;min-height:100%;background:#f0f2f5 url(../assets/background.6f870c8d.svg) no-repeat 50%;background-size:100%;padding:10% 0 0 0;position:relative}#userLayout.user-layout-wrapper .container .user-layout-lang[data-v-77578f85]{width:100%;height:40px;line-height:44px;text-align:right}#userLayout.user-layout-wrapper .container .user-layout-lang .select-lang-trigger[data-v-77578f85]{cursor:pointer;padding:12px;margin-right:24px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:18px;vertical-align:middle}#userLayout.user-layout-wrapper .container .user-layout-content[data-v-77578f85]{padding:32px 0 24px}#userLayout.user-layout-wrapper .container .user-layout-content .top[data-v-77578f85]{text-align:center}#userLayout.user-layout-wrapper .container .user-layout-content .top .header[data-v-77578f85]{height:44px;line-height:44px}#userLayout.user-layout-wrapper .container .user-layout-content .top .header .badge[data-v-77578f85]{position:absolute;display:inline-block;line-height:1;vertical-align:middle;margin-left:-12px;margin-top:-10px;opacity:.8}#userLayout.user-layout-wrapper .container .user-layout-content .top .header .logo[data-v-77578f85]{height:44px;vertical-align:top;margin-right:16px;border-style:none}#userLayout.user-layout-wrapper .container .user-layout-content .top .header .title[data-v-77578f85]{font-size:33px;color:rgba(0,0,0,.85);font-family:Avenir,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:600;position:relative;top:2px}#userLayout.user-layout-wrapper .container .user-layout-content .top .desc[data-v-77578f85]{font-size:14px;color:rgba(0,0,0,.45);margin-top:12px;margin-bottom:40px}#userLayout.user-layout-wrapper .container .user-layout-content .main[data-v-77578f85]{min-width:260px;width:368px;margin:0 auto}#userLayout.user-layout-wrapper .container .user-layout-content .footer[data-v-77578f85]{width:100%;bottom:0;padding:0 16px;margin:48px 0 24px;text-align:center}#userLayout.user-layout-wrapper .container .user-layout-content .footer .links[data-v-77578f85]{margin-bottom:8px;font-size:14px}#userLayout.user-layout-wrapper .container .user-layout-content .footer .links a[data-v-77578f85]{color:rgba(0,0,0,.45);-webkit-transition:all .3s;transition:all .3s}#userLayout.user-layout-wrapper .container .user-layout-content .footer .links a[data-v-77578f85]:not(:last-child){margin-right:40px}#userLayout.user-layout-wrapper .container .user-layout-content .footer .copyright[data-v-77578f85]{color:rgba(0,0,0,.45);font-size:14px}#userLayout.user-layout-wrapper .container a[data-v-77578f85]{text-decoration:none}.ant-pro-drop-down[data-v-fd4de960] .action{margin-right:8px}.ant-pro-drop-down[data-v-fd4de960] .ant-dropdown-menu-item{min-width:160px}.business-pro-ad[data-v-4109f67d]{position:fixed;background:hsla(0,0%,100%,.25);left:0;bottom:0;padding:0 12px;height:48px;width:258px;z-index:99}.ant-pro-global-header-index-right{margin-right:8px}.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-global-header-index-action{color:hsla(0,0%,100%,.85)}.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-global-header-index-action:hover{background:#1890ff}.ant-pro-global-header-index-right .ant-pro-account-avatar .antd-pro-global-header-index-avatar{margin:20px 0;margin-right:8px;color:#22aae3;vertical-align:top;background:hsla(0,0%,100%,.85)}.ant-pro-global-header-index-right .menu .anticon{margin-right:8px}.ant-pro-global-header-index-right .menu .ant-dropdown-menu-item{min-width:100px}.ant-pro-multi-tab{margin:-23px -24px 24px -24px;background:#fff}.topmenu .ant-pro-multi-tab-wrapper{max-width:1200px;margin:0 auto}.topmenu.content-width-Fluid .ant-pro-multi-tab-wrapper{max-width:100%;margin:0 auto}body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;color:rgba(0,0,0,.65);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-variant:tabular-nums;line-height:1.5;background-color:#fff;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}[tabindex="-1"]:focus{outline:none!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#22aae3;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;-webkit-text-decoration-skip:objects}a:hover{color:#4ac4f0}a:active{color:#1384bd}a:active,a:hover{text-decoration:none;outline:0}a[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed;pointer-events:none}code,kbd,pre,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}th{text-align:inherit}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}::-moz-selection{color:#fff;background:#22aae3}::selection{color:#fff;background:#22aae3}.clearfix{zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}.anticon{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon>*{line-height:1}.anticon svg{display:inline-block}.anticon:before{display:none}.anticon .anticon-icon{display:block}.anticon[tabindex]{cursor:pointer}.anticon-spin,.anticon-spin:before{display:inline-block;-webkit-animation:loadingCircle 1s linear infinite;animation:loadingCircle 1s linear infinite}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear.fade-appear-active,.fade-enter.fade-enter-active{-webkit-animation-name:antFadeIn;animation-name:antFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave.fade-leave-active{-webkit-animation-name:antFadeOut;animation-name:antFadeOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.fade-appear,.fade-enter{opacity:0}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.move-up-appear,.move-up-enter,.move-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear.move-up-appear-active,.move-up-enter.move-up-enter-active{-webkit-animation-name:antMoveUpIn;animation-name:antMoveUpIn;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave.move-up-leave-active{-webkit-animation-name:antMoveUpOut;animation-name:antMoveUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-up-appear,.move-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-up-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear,.move-down-enter,.move-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear.move-down-appear-active,.move-down-enter.move-down-enter-active{-webkit-animation-name:antMoveDownIn;animation-name:antMoveDownIn;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave.move-down-leave-active{-webkit-animation-name:antMoveDownOut;animation-name:antMoveDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-down-appear,.move-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-down-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear,.move-left-enter,.move-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear.move-left-appear-active,.move-left-enter.move-left-enter-active{-webkit-animation-name:antMoveLeftIn;animation-name:antMoveLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave.move-left-leave-active{-webkit-animation-name:antMoveLeftOut;animation-name:antMoveLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-left-appear,.move-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-left-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear,.move-right-enter,.move-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear.move-right-appear-active,.move-right-enter.move-right-enter-active{-webkit-animation-name:antMoveRightIn;animation-name:antMoveRightIn;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave.move-right-leave-active{-webkit-animation-name:antMoveRightOut;animation-name:antMoveRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-right-appear,.move-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-right-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveDownIn{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveDownOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveDownOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveLeftIn{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveLeftIn{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveLeftOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveLeftOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveRightIn{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveRightIn{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveRightOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveRightOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveUpIn{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveUpIn{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveUpOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveUpOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes loadingCircle{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingCircle{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true],[ant-click-animating=true]{position:relative}html{--antd-wave-shadow-color:#22aae3}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;-webkit-box-shadow:0 0 0 0 #22aae3;box-shadow:0 0 0 0 #22aae3;-webkit-box-shadow:0 0 0 0 var(--antd-wave-shadow-color);box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;-webkit-animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}@-webkit-keyframes waveEffect{to{-webkit-box-shadow:0 0 0 #22aae3;box-shadow:0 0 0 #22aae3;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect{to{-webkit-box-shadow:0 0 0 #22aae3;box-shadow:0 0 0 #22aae3;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect{to{opacity:0}}@keyframes fadeEffect{to{opacity:0}}.slide-up-appear,.slide-up-enter,.slide-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear.slide-up-appear-active,.slide-up-enter.slide-up-enter-active{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave.slide-up-leave-active{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-up-appear,.slide-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-up-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear,.slide-down-enter,.slide-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear.slide-down-appear-active,.slide-down-enter.slide-down-enter-active{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave.slide-down-leave-active{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-down-appear,.slide-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-down-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear,.slide-left-enter,.slide-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear.slide-left-appear-active,.slide-left-enter.slide-left-enter-active{-webkit-animation-name:antSlideLeftIn;animation-name:antSlideLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave.slide-left-leave-active{-webkit-animation-name:antSlideLeftOut;animation-name:antSlideLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-left-appear,.slide-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-left-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear,.slide-right-enter,.slide-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear.slide-right-appear-active,.slide-right-enter.slide-right-enter-active{-webkit-animation-name:antSlideRightIn;animation-name:antSlideRightIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave.slide-right-leave-active{-webkit-animation-name:antSlideRightOut;animation-name:antSlideRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-right-appear,.slide-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-right-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideUpIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideUpOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideUpOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideDownIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@-webkit-keyframes antSlideDownOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@keyframes antSlideDownOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@-webkit-keyframes antSlideLeftIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideLeftIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideLeftOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideLeftOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideRightIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@keyframes antSlideRightIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@-webkit-keyframes antSlideRightOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}@keyframes antSlideRightOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}.swing-appear,.swing-enter{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.swing-appear.swing-appear-active,.swing-enter.swing-enter-active{-webkit-animation-name:antSwingIn;animation-name:antSwingIn;-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes antSwingIn{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}@keyframes antSwingIn{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}.zoom-appear,.zoom-enter,.zoom-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-appear.zoom-appear-active,.zoom-enter.zoom-enter-active{-webkit-animation-name:antZoomIn;animation-name:antZoomIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-leave.zoom-leave-active{-webkit-animation-name:antZoomOut;animation-name:antZoomOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-appear,.zoom-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear,.zoom-big-enter,.zoom-big-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active,.zoom-big-enter.zoom-big-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-appear,.zoom-big-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear,.zoom-big-fast-enter,.zoom-big-fast-leave{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active,.zoom-big-fast-enter.zoom-big-fast-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear,.zoom-big-fast-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-fast-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear,.zoom-up-enter,.zoom-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active,.zoom-up-enter.zoom-up-enter-active{-webkit-animation-name:antZoomUpIn;animation-name:antZoomUpIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active{-webkit-animation-name:antZoomUpOut;animation-name:antZoomUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-up-appear,.zoom-up-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-up-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear,.zoom-down-enter,.zoom-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active,.zoom-down-enter.zoom-down-enter-active{-webkit-animation-name:antZoomDownIn;animation-name:antZoomDownIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active{-webkit-animation-name:antZoomDownOut;animation-name:antZoomDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-down-appear,.zoom-down-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-down-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear,.zoom-left-enter,.zoom-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active,.zoom-left-enter.zoom-left-enter-active{-webkit-animation-name:antZoomLeftIn;animation-name:antZoomLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active{-webkit-animation-name:antZoomLeftOut;animation-name:antZoomLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-left-appear,.zoom-left-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-left-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear,.zoom-right-enter,.zoom-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active,.zoom-right-enter.zoom-right-enter-active{-webkit-animation-name:antZoomRightIn;animation-name:antZoomRightIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active{-webkit-animation-name:antZoomRightOut;animation-name:antZoomRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-right-appear,.zoom-right-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-right-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomIn{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@keyframes antZoomOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@-webkit-keyframes antZoomBigIn{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomBigIn{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomBigOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@keyframes antZoomBigOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@-webkit-keyframes antZoomUpIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@keyframes antZoomUpIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@keyframes antZoomUpOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@-webkit-keyframes antZoomLeftIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@keyframes antZoomLeftIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@keyframes antZoomLeftOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@-webkit-keyframes antZoomRightIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@keyframes antZoomRightIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@keyframes antZoomRightOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@-webkit-keyframes antZoomDownIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@keyframes antZoomDownIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}@keyframes antZoomDownOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse,.ant-motion-collapse-legacy-active{-webkit-transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important;transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden}#nprogress{pointer-events:none}#nprogress .bar{background:#22aae3;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;-webkit-box-shadow:0 0 10px #22aae3,0 0 5px #22aae3;box-shadow:0 0 10px #22aae3,0 0 5px #22aae3;opacity:1;-webkit-transform:rotate(3deg) translateY(-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;-webkit-box-sizing:border-box;box-sizing:border-box;border:2px solid transparent;border-top-color:#22aae3;border-left-color:#22aae3;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}#app,#root,body,html{height:100%}.colorWeak{-webkit-filter:invert(80%);filter:invert(80%)}.ant-layout.layout-basic{height:100vh;min-height:100vh}canvas{display:block}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}ol,ul{list-style:none}.table-alert{margin-bottom:16px}.table-operator{margin-bottom:18px}.table-operator button{margin-right:8px}.table-page-search-wrapper .ant-form-inline .ant-form-item{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:24px;margin-right:0}.table-page-search-wrapper .ant-form-inline .ant-form-item .ant-form-item-control-wrapper{-webkit-box-flex:1;-ms-flex:1 1;flex:1 1;display:inline-block;vertical-align:middle}.table-page-search-wrapper .ant-form-inline .ant-form-item>.ant-form-item-label{line-height:32px;padding-right:8px;width:auto}.table-page-search-wrapper .ant-form-inline .ant-form-item .ant-form-item-control{height:32px;line-height:32px}.table-page-search-wrapper .table-page-search-submitButtons{display:block;margin-bottom:24px;white-space:nowrap}@media (max-width:480px){.ant-table{width:100%;overflow-x:auto}.ant-table-tbody>tr>td,.ant-table-tbody>tr>th,.ant-table-thead>tr>td,.ant-table-thead>tr>th{white-space:pre}.ant-table-tbody>tr>td>span,.ant-table-tbody>tr>th>span,.ant-table-thead>tr>td>span,.ant-table-thead>tr>th>span{display:block}}
\ No newline at end of file
diff --git a/easy-retry-server/src/main/resources/spring-configuration-metadata.json b/easy-retry-server/src/main/resources/spring-configuration-metadata.json
deleted file mode 100644
index 274a7c3e..00000000
--- a/easy-retry-server/src/main/resources/spring-configuration-metadata.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "groups": [
- {
- "name": "easy-retry",
- "type": "com.aizuda.easy.retry.server.config.SystemProperties",
- "sourceType": "com.aizuda.easy.retry.server.config.SystemProperties"
- }
- ],
- "properties": [
- {
- "name": "easy-retry.callback",
- "type": "jcom.aizuda.easy.retry.server.config.SystemProperties.Callback",
- "defaultValue": "30",
- "description": "服务端的地址,若服务端集群部署则此处配置域名",
- "sourceType": "com.aizuda.easy.retry.server.config.SystemProperties"
- }
- ]
-}
diff --git a/pom.xml b/pom.xml
index b17ef3df..f384557c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,13 +40,11 @@
-
io.netty
netty-all
${netty-all.version}
-
com.aizuda
easy-retry-common-core