|
@@ -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);
|
|
|
}
|
|
|
}
|
|
|
}
|