优化任务添加修改&fix手动执行网络型任务失败

This commit is contained in:
不做码农 2022-07-09 14:18:42 +08:00
parent 9394f98682
commit 68faa22ec5
6 changed files with 58 additions and 43 deletions

View File

@ -46,7 +46,8 @@ namespace ZR.Admin.WebApi.Controllers
[HttpGet]
public IActionResult Index()
{
return Content("Hello看到这里页面说明你已经成功启动了本项目加油吧 少年。");
return Ok("看到这里页面说明你已经成功启动了本项目:)\n\n" +
"如果觉得项目有用,打赏作者喝杯咖啡作为奖励\n☛☛http://www.izhaorui.cn/doc\n");
}
/// <summary>

View File

@ -102,18 +102,10 @@ namespace ZR.Admin.WebApi.Controllers
//从 Dto 映射到 实体
var tasksQz = parm.Adapt<SysTasksQz>().ToCreate();
var worker = new IdWorker(1, 1);
tasksQz.ID = worker.NextId().ToString();
tasksQz.IsStart = false;
tasksQz.Create_by = HttpContext.GetName();
tasksQz.TaskType = parm.TaskType;
tasksQz.ApiUrl = parm.ApiUrl;
if (parm.ApiUrl.IfNotEmpty() && parm.TaskType == 2)
{
tasksQz.AssemblyName = "ZR.Tasks";
tasksQz.ClassName = "TaskScheduler.Job_HttpRequest";
}
return SUCCESS(_tasksQzService.Add(tasksQz));
tasksQz.ID = worker.NextId().ToString();
return SUCCESS(_tasksQzService.AddTasks(tasksQz));
}
/// <summary>
@ -152,28 +144,11 @@ namespace ZR.Admin.WebApi.Controllers
{
throw new CustomException($"该任务正在运行中,请先停止在更新");
}
var response = _tasksQzService.Update(m => m.ID == parm.ID, m => new SysTasksQz
{
Name = parm.Name,
JobGroup = parm.JobGroup,
Cron = parm.Cron,
AssemblyName = parm.AssemblyName,
ClassName = parm.ClassName,
Remark = parm.Remark,
TriggerType = parm.TriggerType,
IntervalSecond = parm.IntervalSecond,
JobParams = parm.JobParams,
Update_by = HttpContextExtension.GetName(HttpContext),
Update_time = DateTime.Now,
BeginTime = parm.BeginTime,
EndTime = parm.EndTime,
TaskType = parm.TaskType,
ApiUrl = parm.ApiUrl,
});
var model = parm.Adapt<SysTasksQz>();
model.Update_by = HttpContextExtension.GetName(HttpContext);
int response = _tasksQzService.UpdateTasks(model);
if (response > 0)
{
//先暂停原先的任务
var respon = await _schedulerServer.UpdateTaskScheduleAsync(tasksQz);
}

View File

@ -1,14 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZR.Model.System;
using ZR.Model.System;
using ZR.Model.System.Dto;
namespace ZR.Service.System.IService
{
public interface ISysTasksQzService : IBaseService<SysTasksQz>
{
//SysTasksQz GetId(object id);
int AddTasks(SysTasksQz parm);
int UpdateTasks(SysTasksQz parm);
}
}

View File

@ -1,6 +1,7 @@
using Infrastructure.Attribute;
using Infrastructure.Extensions;
using System;
using ZR.Model.System;
using ZR.Repository.System;
using ZR.Service.System.IService;
namespace ZR.Service.System
@ -11,8 +12,48 @@ namespace ZR.Service.System
[AppService(ServiceType = typeof(ISysTasksQzService), ServiceLifetime = LifeTime.Transient)]
public class SysTasksQzService : BaseService<SysTasksQz>, ISysTasksQzService
{
public SysTasksQzService(SysTasksQzRepository repository)
/// <summary>
/// 添加任务
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public int AddTasks(SysTasksQz parm)
{
parm.IsStart = false;
if (parm.ApiUrl.IfNotEmpty() && parm.TaskType == 2)
{
parm.AssemblyName = "ZR.Tasks";
parm.ClassName = "TaskScheduler.Job_HttpRequest";
}
return Add(parm);
}
/// <summary>
/// 更新任务
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public int UpdateTasks(SysTasksQz parm)
{
return Update(f => f.ID == parm.ID, f => new SysTasksQz
{
ID = parm.ID,
Name = parm.Name,
JobGroup = parm.JobGroup,
Cron = parm.Cron,
AssemblyName = parm.AssemblyName,
ClassName = parm.ClassName,
Remark = parm.Remark,
TriggerType = parm.TriggerType,
IntervalSecond = parm.IntervalSecond,
JobParams = parm.JobParams,
Update_time = DateTime.Now,
BeginTime = parm.BeginTime,
EndTime = parm.EndTime,
TaskType = parm.TaskType,
ApiUrl = parm.ApiUrl,
});
}
}
}

View File

@ -46,7 +46,7 @@ namespace ZR.Tasks
RefireImmediately = true
};
status = 1;
logMsg = $"FailException{ex.Message}";
logMsg = $"Job Run FailException{ex.Message}";
}
var logModel = new SysTasksLog()

View File

@ -29,7 +29,7 @@ namespace ZR.Tasks.TaskScheduler
public async Task Run(IJobExecutionContext context)
{
AbstractTrigger trigger = (context as JobExecutionContextImpl).Trigger as AbstractTrigger;
var info = await tasksQzService.GetByIdAsync(trigger.Name);
var info = await tasksQzService.GetByIdAsync(trigger.JobName);
if (info != null)
{
var result = await HttpHelper.HttpGetAsync("http://" + info.ApiUrl);
@ -37,7 +37,7 @@ namespace ZR.Tasks.TaskScheduler
}
else
{
throw new CustomException("任务网络请求执行失败,任务不存在");
throw new CustomException($"任务{trigger?.JobName}网络请求执行失败,任务不存在");
}
}
}