优化任务添加修改&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] [HttpGet]
public IActionResult Index() public IActionResult Index()
{ {
return Content("Hello看到这里页面说明你已经成功启动了本项目加油吧 少年。"); return Ok("看到这里页面说明你已经成功启动了本项目:)\n\n" +
"如果觉得项目有用,打赏作者喝杯咖啡作为奖励\n☛☛http://www.izhaorui.cn/doc\n");
} }
/// <summary> /// <summary>

View File

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

View File

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

View File

@ -1,6 +1,7 @@
using Infrastructure.Attribute; using Infrastructure.Attribute;
using Infrastructure.Extensions;
using System;
using ZR.Model.System; using ZR.Model.System;
using ZR.Repository.System;
using ZR.Service.System.IService; using ZR.Service.System.IService;
namespace ZR.Service.System namespace ZR.Service.System
@ -11,8 +12,48 @@ namespace ZR.Service.System
[AppService(ServiceType = typeof(ISysTasksQzService), ServiceLifetime = LifeTime.Transient)] [AppService(ServiceType = typeof(ISysTasksQzService), ServiceLifetime = LifeTime.Transient)]
public class SysTasksQzService : BaseService<SysTasksQz>, ISysTasksQzService 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 RefireImmediately = true
}; };
status = 1; status = 1;
logMsg = $"FailException{ex.Message}"; logMsg = $"Job Run FailException{ex.Message}";
} }
var logModel = new SysTasksLog() var logModel = new SysTasksLog()

View File

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