You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2023/01/22 05:50:54 UTC

[shardingsphere] branch master updated: Refactor ExecuteProcessEngine (#23700)

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 <zh...@apache.org>
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))));