TaskController.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel.DataAnnotations;
  4. using System.Data.SqlClient;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using DW5S.DTO;
  10. using DW5S.Entity;
  11. using DW5S.Repostory;
  12. using System.Threading;
  13. using DW5S.WebApi;
  14. using Microsoft.AspNetCore.Mvc;
  15. using Serilog;
  16. using Serilog.Core;
  17. using DW5S.Service;
  18. namespace DW5S.App.Controllers
  19. {
  20. /// <summary>
  21. /// 任务相关接口
  22. /// </summary>
  23. public class TaskController : BaseController
  24. {
  25. ILogger logger { get; set; }
  26. IUnitOfWork unitOfWork { get; set; }
  27. TestService ts { get; set; }
  28. TestService ss;
  29. public TaskController()
  30. {
  31. }
  32. /// <summary>
  33. /// 获取客户端IP地址
  34. /// </summary>
  35. /// <returns></returns>
  36. [HttpGet]
  37. public AjaxResult<string> GetClientIP()
  38. {
  39. try
  40. {
  41. var dd1=IocContainer.UnitOfWork;
  42. var dd2=IocContainer.UnitOfWork;
  43. //var qq = logger.ToString();
  44. var ip = RemoteIp;
  45. return Success(ip);
  46. }
  47. catch (Exception ex)
  48. {
  49. string error = "获取客户端IP出错";
  50. //logger.Error(ex, error);
  51. return Error<string>(error);
  52. }
  53. }
  54. /// <summary>
  55. /// 停止任务
  56. /// </summary>
  57. /// <param name="dto">任务停止参数</param>
  58. /// <returns></returns>
  59. [HttpPost]
  60. public async Task<AjaxResult> StopAsync(TaskStopHandleDto dto)
  61. {
  62. try
  63. {
  64. var repsTask = unitOfWork.Of<TaskInfo>();
  65. var item = await repsTask.GetByIdAsync(dto.ID);
  66. if (item == null)
  67. {
  68. return Error($"任务停止失败,找不到ID={dto.ID}的任务");
  69. }
  70. if (item.TaskState == EnumTaskState.Stopped)
  71. Thread.Sleep(2000);
  72. item.TaskState = EnumTaskState.Stopped;
  73. await repsTask.AddOrUpdateAsync(item);
  74. await unitOfWork.SaveAsync();
  75. Messenger.Defalut.Pub("任务状态改变", dto.ID);
  76. //if (dto.StopType == EnumTaskStopType.Properly)
  77. //logger.Information($"任务停止完成,ID={dto.ID},停止原因={dto.StopReason}");
  78. //else
  79. //logger.Error($"任务停止完成,ID={dto.ID},停止原因={dto.StopReason}");
  80. return Success();
  81. }
  82. catch (Exception ex)
  83. {
  84. string msg = $"任务停止异常.ID={dto.ID}";
  85. //logger.Error(ex, msg);
  86. return Error(msg);
  87. }
  88. }
  89. }
  90. }