zoulei 1 рік тому
батько
коміт
81edfbb9ab

+ 3 - 3
Service/X2D1NoRefTaskServer/Controllers/HistoryTaskProcessingController.cs → Service/X2D1NoRefTaskServer/Controllers/X2D1TaskProcessingController.cs

@@ -14,7 +14,7 @@ namespace X2D1NoRefTaskServer.Controllers
     /// <summary>
     ///两星一地无参任务处理接口
     /// </summary>
-    public class X2D1TaskProcessingController : BaseController
+    public class X2D1NoRefTaskProcessingController : BaseController
     {
         /*******************
          * !!!不要在Controller中放业务逻辑的全局变量
@@ -22,7 +22,7 @@ namespace X2D1NoRefTaskServer.Controllers
          * Controller主要就是调用Service层的东西。Service层执行业务逻辑和调用Repository层操作数据库
          * ********************/
         private readonly TaskService _service;
-        public X2D1TaskProcessingController(TaskService service)
+        public X2D1NoRefTaskProcessingController(TaskService service)
         {
             _service = service;
         }
@@ -63,7 +63,7 @@ namespace X2D1NoRefTaskServer.Controllers
             try
             {
                 LogHelper.Warning($"用户停止了任务,ID={dto.ID}");
-                _service.Stop();
+                _service.Stop(dto.ID);
                 return Success();
             }
             catch (Exception ex)

+ 11 - 5
Service/X2D1NoRefTaskServer/Service/TaskService.cs

@@ -15,7 +15,7 @@ namespace X2D1NoRefTaskServer.Service
     public class TaskService
     {
         private readonly string baseUrl;
-        CancellationTokenSource cts;
+        Dictionary<int, CancellationTokenSource> dicCts = new Dictionary<int, CancellationTokenSource>();
         public TaskService()
         {
             var posPlatformAddr = ConfigurationManager.AppSettings["PosPlatformAddr"].Trim();//like http://127.0.0.1:8091 or http://127.0.0.1:8091/
@@ -31,7 +31,8 @@ namespace X2D1NoRefTaskServer.Service
         /// <param name="dto"></param>
         public void StartHistoryAsync(X2D1NoRefTaskHandleDto dto)
         {
-            cts = new CancellationTokenSource();
+            var cts = new CancellationTokenSource();
+            dicCts.Add(dto.ID, cts);
             if (!Directory.Exists(dto.CapDir))
             {
                 StopTask(dto.ID, EnumTaskStopType.Error, $"文件路径[{dto.CapDir}]不存在,任务结束");
@@ -298,7 +299,8 @@ namespace X2D1NoRefTaskServer.Service
         /// <param name="dto"></param>
         public void StarRealAsync(X2D1NoRefTaskHandleDto dto)
         {
-            cts = new CancellationTokenSource();
+            var cts = new CancellationTokenSource();
+            dicCts.Add(dto.ID, cts);
             if (!Directory.Exists(dto.CapDir))
             {
                 StopTask(dto.ID, EnumTaskStopType.Error, $"文件路径[{dto.CapDir}]不存在,任务结束");
@@ -699,14 +701,18 @@ namespace X2D1NoRefTaskServer.Service
                 LogHelper.Error($"【任务{taskID}】停止异常.{stopResp.msg}");
                 return;
             }
+            if (dicCts.ContainsKey(taskID))
+                dicCts.Remove(taskID);
         }
 
         /// <summary>
         /// 停止任务
         /// </summary>
-        public void Stop()
+        public void Stop(int taskID)
         {
-            cts?.Cancel();
+            if (!dicCts.ContainsKey(taskID)) return;
+            dicCts[taskID]?.Cancel();
+            dicCts.Remove(taskID);
         }
     }
 }

+ 1 - 1
Service/X2D1NoRefTaskServer/X2D1NoRefTaskServer.csproj

@@ -148,7 +148,7 @@
     <Compile Include="..\..\XdCxRhDW.App\Localizer\ChsLocalizer.cs">
       <Link>DxHelper\ChsLocalizer.cs</Link>
     </Compile>
-    <Compile Include="Controllers\HistoryTaskProcessingController.cs" />
+    <Compile Include="Controllers\X2D1TaskProcessingController.cs" />
     <Compile Include="LogHelper.cs" />
     <Compile Include="LogInfo.cs" />
     <Compile Include="MySqlTools.cs" />

+ 3 - 3
XdCxRhDW.App/UserControl/CtrlHome.cs

@@ -530,7 +530,7 @@ namespace XdCxRhDW.App.UserControl
                                 DateDirFormat = tsk.CapDirFormat,
                                 Sigs = tskSigsDto,
                             };
-                            var res = await HttpHelper.PostRequestAsync<AjaxResult>(svtItem.BaseHttpAddr + "/api/X2D1TaskProcessing/Run", dto);
+                            var res = await HttpHelper.PostRequestAsync<AjaxResult>(svtItem.BaseHttpAddr + "/api/X2D1NoRefTaskProcessing/Run", dto);
                             if (res.code != 200)
                             {
                                 Serilog.Log.Error(res.msg);
@@ -565,7 +565,7 @@ namespace XdCxRhDW.App.UserControl
                                 CapLat = tx.Lat,
                                 Sigs = tskSigsDto.ToList()
                             };
-                            var res = await HttpHelper.PostRequestAsync<AjaxResult>(svtItem.BaseHttpAddr + "/api/X2D1TaskProcessing/Run", dto);
+                            var res = await HttpHelper.PostRequestAsync<AjaxResult>(svtItem.BaseHttpAddr + "/api/X2D1NoRefTaskProcessing/Run", dto);
                             if (res.code != 200)
                             {
                                 Serilog.Log.Error(res.msg);
@@ -612,7 +612,7 @@ namespace XdCxRhDW.App.UserControl
                         }
                         TaskStopHandleDto dto = new TaskStopHandleDto();
                         dto.ID = tsk.ID;
-                        var res = await HttpHelper.PostRequestAsync<AjaxResult>(svtItem.BaseHttpAddr + "/api/X2D1TaskProcessing/Stop", dto);
+                        var res = await HttpHelper.PostRequestAsync<AjaxResult>(svtItem.BaseHttpAddr + "/api/X2D1NoRefTaskProcessing/Stop", dto);
                         if (res.code != 200)
                         {
                             Serilog.Log.Error(res.msg);