This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 2d7dcb6fadb Refactor ExecuteProcessEngine (#23700)
2d7dcb6fadb is described below
commit 2d7dcb6fadb6b241603088051e559ffa9acbe661
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jan 22 13:50:48 2023 +0800
Refactor ExecuteProcessEngine (#23700)
---
.../executor/sql/process/ExecuteProcessEngine.java | 17 +++++++++++------
.../mode/process/GovernanceExecuteProcessReporter.java | 17 +++++++++--------
.../subscriber/ProcessStandaloneSubscriber.java | 3 +--
3 files changed, 21 insertions(+), 16 deletions(-)
diff --git
a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessEngine.java
b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessEngine.java
index 17ce3a7ee76..91b8fd9a97f 100644
---
a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessEngine.java
+++
b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessEngine.java
@@ -50,21 +50,26 @@ public final class ExecuteProcessEngine {
*
* @param grantee grantee
* @param databaseName database name
- * @return execution id
+ * @return execution ID
*/
public static String initializeConnection(final Grantee grantee, final
String databaseName) {
- ExecutionGroupContext<SQLExecutionUnit> executionGroupContext = new
ExecutionGroupContext<>(Collections.emptyList());
- executionGroupContext.setExecutionID(new
UUID(ThreadLocalRandom.current().nextLong(),
ThreadLocalRandom.current().nextLong()).toString().replace("-", ""));
- executionGroupContext.setGrantee(grantee);
- executionGroupContext.setDatabaseName(databaseName);
+ ExecutionGroupContext<SQLExecutionUnit> executionGroupContext =
createExecutionGroupContext(grantee, databaseName);
OptionalSPIRegistry.findRegisteredService(ExecuteProcessReporter.class).ifPresent(optional
-> optional.report(executionGroupContext));
return executionGroupContext.getExecutionID();
}
+ private static ExecutionGroupContext<SQLExecutionUnit>
createExecutionGroupContext(final Grantee grantee, final String databaseName) {
+ ExecutionGroupContext<SQLExecutionUnit> result = new
ExecutionGroupContext<>(Collections.emptyList());
+ result.setExecutionID(new UUID(ThreadLocalRandom.current().nextLong(),
ThreadLocalRandom.current().nextLong()).toString().replace("-", ""));
+ result.setGrantee(grantee);
+ result.setDatabaseName(databaseName);
+ return result;
+ }
+
/**
* Finish connection.
*
- * @param executionID execution id
+ * @param executionID execution ID
*/
public static void finishConnection(final String executionID) {
OptionalSPIRegistry.findRegisteredService(ExecuteProcessReporter.class).ifPresent(optional
-> optional.reportRemove(executionID));
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/process/GovernanceExecuteProcessReporter.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/process/GovernanceExecuteProcessReporter.java
index d3107078659..b2c95250108 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/process/GovernanceExecuteProcessReporter.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/process/GovernanceExecuteProcessReporter.java
@@ -63,14 +63,15 @@ public final class GovernanceExecuteProcessReporter
implements ExecuteProcessRep
@Override
public void reportClean(final String executionID) {
ShowProcessListManager.getInstance().removeProcessStatement(executionID);
-
Optional.ofNullable(ShowProcessListManager.getInstance().getProcessContext(executionID)).ifPresent(
- executeProcessContext -> {
- if (executeProcessContext.isProxyContext()) {
-
executeProcessContext.resetExecuteProcessContextToSleep();
- } else {
-
ShowProcessListManager.getInstance().removeProcessContext(executionID);
- }
- });
+ ExecuteProcessContext executeProcessContext =
ShowProcessListManager.getInstance().getProcessContext(executionID);
+ if (null == executeProcessContext) {
+ return;
+ }
+ if (executeProcessContext.isProxyContext()) {
+ executeProcessContext.resetExecuteProcessContextToSleep();
+ } else {
+
ShowProcessListManager.getInstance().removeProcessContext(executionID);
+ }
}
@Override
diff --git
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/subscriber/ProcessStandaloneSubscriber.java
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/subscriber/ProcessStandaloneSubscriber.java
index 871ab9d2bb4..9eaf487d252 100644
---
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/subscriber/ProcessStandaloneSubscriber.java
+++
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/subscriber/ProcessStandaloneSubscriber.java
@@ -53,8 +53,7 @@ public final class ProcessStandaloneSubscriber {
*/
@Subscribe
public void loadShowProcessListData(final ShowProcessListRequestEvent
event) {
- BatchYamlExecuteProcessContext batchYamlExecuteProcessContext = new
BatchYamlExecuteProcessContext(new ArrayList<>(
-
ShowProcessListManager.getInstance().getProcessContexts().values()));
+ BatchYamlExecuteProcessContext batchYamlExecuteProcessContext = new
BatchYamlExecuteProcessContext(new
ArrayList<>(ShowProcessListManager.getInstance().getProcessContexts().values()));
eventBusContext.post(new
ShowProcessListResponseEvent(batchYamlExecuteProcessContext.getContexts().isEmpty()
? Collections.emptyList()
:
Collections.singletonList(YamlEngine.marshal(batchYamlExecuteProcessContext))));