lith 4 năm trước cách đây
mục cha
commit
b126c80baa

+ 1 - 1
dotnet/ServiceStation/Demo/StressTest/App.Robot.Station/Logical/Worker/IWorker.cs

@@ -8,7 +8,7 @@ namespace App.Robot.Station.Logical.Worker
     {
         int id { get; set; }
 
-        TaskConfig config { get; set; }
+        TaskConfig config { get;  }
 
         void Start();
 

+ 10 - 6
dotnet/ServiceStation/Demo/StressTest/App.Robot.Station/Logical/Worker/Worker_ApiClientAsync.cs

@@ -14,6 +14,8 @@ namespace App.Robot.Station.Logical.Worker
         public Worker_ApiClientAsync(TaskConfig config)
         {
             this.config = config;
+
+            targetCount= config.threadCount * config.loopCountPerThread;
         }
 
 
@@ -29,26 +31,28 @@ namespace App.Robot.Station.Logical.Worker
 
         public bool IsRunning => RunningThreadCount==0;
  
-        public int targetCount => config.threadCount * config.loopCountPerThread;
+        public int targetCount;
 
         public int sumCount = 0;
         public int sumFailCount = 0;
 
         public int curCount=0;
         public int failCount=0;
-        public TaskConfig config { get; set; }
+        public TaskConfig config { get; }
 
         [MethodImpl(MethodImplOptions.AggressiveInlining)]
         protected void StepUp(bool success)
-        {
+        {          
             Interlocked.Increment(ref curCount);
-            Interlocked.Increment(ref sumCount);
+            if (Interlocked.Increment(ref sumCount) >= targetCount) 
+            {
+                needRunning = false;
+            }
             if (!success)
             {
                 Interlocked.Increment(ref sumFailCount);
                 Interlocked.Increment(ref failCount);
-            }
-
+            }         
         }
 
       

+ 1 - 1
dotnet/ServiceStation/Demo/StressTest/App.Robot.Station/wwwroot/_robot_/TaskMng.html

@@ -107,7 +107,7 @@
         var config = new Vue({
             el: '#txtTaskConfig',
             data: {
-                config: '{"type":"ApiClientAsync","name": "Demo[8-0]","apiRoute": "/a", "//apiArg": "{\\"Name\\":\\"lith\\"}","httpMethod":"POST", "threadCount": 8,"interval": 0, "autoStart": false,"loopCountPerThread": 1000000000, "//type":"ApiClient、ApiClientAsync、 HttpClient、HttpUtil","//apiRoute": "/demo/v1/api/333/arg" }'
+                config: '{"type":"ApiClientAsync","name": "Demo[8-0]","apiRoute": "/a", "httpMethod":"GET", "threadCount": 8,"interval": 0, "autoStart": false,"loopCountPerThread": 1000000000, "//type":"ApiClient、ApiClientAsync、 HttpClient、HttpUtil","//apiRoute": "/demo/v1/api/333/arg","//apiArg": "{\\"Name\\":\\"lith\\"}" }'
             }
         });