ruanwenjun commented on code in PR #17159:
URL: 
https://github.com/apache/dolphinscheduler/pull/17159#discussion_r2074562684


##########
dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/config/MasterServerLoadProtection.java:
##########
@@ -18,10 +18,48 @@
 package org.apache.dolphinscheduler.server.master.config;
 
 import org.apache.dolphinscheduler.meter.metrics.BaseServerLoadProtection;
+import org.apache.dolphinscheduler.meter.metrics.SystemMetrics;
+import 
org.apache.dolphinscheduler.server.master.engine.WorkflowCacheRepository;
 
+import lombok.Getter;
+import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
 
 @Slf4j
+@Getter
+@Setter
 public class MasterServerLoadProtection extends BaseServerLoadProtection {
 
+    private Integer maxConcurrentWorkflowInstances;
+
+    private WorkflowCacheRepository workflowCacheRepository;
+
+    public void setWorkflowCacheRepository(WorkflowCacheRepository 
workflowCacheRepository) {
+        this.workflowCacheRepository = workflowCacheRepository;
+    }

Review Comment:
   ```suggestion
       
   ```



##########
dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/config/MasterServerLoadProtection.java:
##########
@@ -18,10 +18,48 @@
 package org.apache.dolphinscheduler.server.master.config;
 
 import org.apache.dolphinscheduler.meter.metrics.BaseServerLoadProtection;
+import org.apache.dolphinscheduler.meter.metrics.SystemMetrics;
+import 
org.apache.dolphinscheduler.server.master.engine.WorkflowCacheRepository;
 
+import lombok.Getter;
+import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
 
 @Slf4j
+@Getter
+@Setter
 public class MasterServerLoadProtection extends BaseServerLoadProtection {
 
+    private Integer maxConcurrentWorkflowInstances;
+
+    private WorkflowCacheRepository workflowCacheRepository;
+
+    public void setWorkflowCacheRepository(WorkflowCacheRepository 
workflowCacheRepository) {
+        this.workflowCacheRepository = workflowCacheRepository;
+    }
+
+    @Override
+    public boolean isOverload(SystemMetrics systemMetrics) {
+        if (!enabled) {
+            return false;
+        }
+
+        // Check system metrics first
+        if (super.isOverload(systemMetrics)) {
+            return true;
+        }
+
+        // Check workflow instance count if configured and repository is 
available
+        if (maxConcurrentWorkflowInstances != null && workflowCacheRepository 
!= null) {

Review Comment:
   How about set a default value for `maxConcurrentWorkflowInstances`, e.g. 
`Integer.MAX_VALUE` then we don't need to check null here.



##########
dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/config/MasterServerLoadProtection.java:
##########
@@ -18,10 +18,48 @@
 package org.apache.dolphinscheduler.server.master.config;
 
 import org.apache.dolphinscheduler.meter.metrics.BaseServerLoadProtection;
+import org.apache.dolphinscheduler.meter.metrics.SystemMetrics;
+import 
org.apache.dolphinscheduler.server.master.engine.WorkflowCacheRepository;
 
+import lombok.Getter;
+import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
 
 @Slf4j
+@Getter
+@Setter
 public class MasterServerLoadProtection extends BaseServerLoadProtection {
 
+    private Integer maxConcurrentWorkflowInstances;
+
+    private WorkflowCacheRepository workflowCacheRepository;

Review Comment:
   ```suggestion
       private IWorkflowRepository workflowRepository;
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to