| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System.Data.SqlClient;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using DW5S.DTO;using DW5S.Entity;using DW5S.Repostory;using System.Threading;using DW5S.WebApi;using Microsoft.AspNetCore.Mvc;using Microsoft.Extensions.Logging;using Serilog.Core;namespace DW5S.App.Controllers{    /// <summary>    /// 任务相关接口    /// </summary>    public class TaskController : BaseController    {        [Autowired]        private readonly ILogger logger;        [Autowired]        private readonly UnitOfWork unitOfWork;        /// <summary>        /// 获取客户端IP地址        /// </summary>        /// <returns></returns>        [HttpGet]        public AjaxResult<string> GetClientIP()        {            try            {                var ip = RemoteIp;                return Success(ip);            }            catch (Exception ex)            {                string error = "获取客户端IP出错";                logger.LogError(ex, error);                return Error<string>(error);            }        }        /// <summary>        /// 停止任务        /// </summary>        /// <param name="dto">任务停止参数</param>        /// <returns></returns>        [HttpPost]        public async Task<AjaxResult> StopAsync(TaskStopHandleDto dto)        {            try            {                var repsTask = unitOfWork.Reps<TaskInfo>();                var item = await repsTask.GetByIdAsync(dto.ID);                if (item == null)                {                    return Error($"任务停止失败,找不到ID={dto.ID}的任务");                }                if (item.TaskState == EnumTaskState.Stopped)                    Thread.Sleep(2000);                item.TaskState = EnumTaskState.Stopped;                repsTask.Update(item);                await unitOfWork.SaveAsync();                Messenger.Defalut.Pub("任务状态改变", dto.ID);                if (dto.StopType == EnumTaskStopType.Properly)                    logger.LogInformation($"任务停止完成,ID={dto.ID},停止原因={dto.StopReason}");                else                    logger.LogError($"任务停止完成,ID={dto.ID},停止原因={dto.StopReason}");                return Success();            }            catch (Exception ex)            {                string msg = $"任务停止异常.ID={dto.ID}";                logger.LogError(ex, msg);                return Error(msg);            }        }    }}
 |