任务新增执行SQL脚本
This commit is contained in:
45
ZR.Tasks/TaskScheduler/Job_SqlExecute.cs
Normal file
45
ZR.Tasks/TaskScheduler/Job_SqlExecute.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using Infrastructure;
|
||||
using Infrastructure.Attribute;
|
||||
using Infrastructure.Extensions;
|
||||
using Quartz;
|
||||
using Quartz.Impl;
|
||||
using Quartz.Impl.Triggers;
|
||||
using SqlSugar.IOC;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using ZR.Service.System.IService;
|
||||
|
||||
namespace ZR.Tasks.TaskScheduler
|
||||
{
|
||||
[AppService(ServiceType = typeof(Job_SqlExecute), ServiceLifetime = LifeTime.Scoped)]
|
||||
public class Job_SqlExecute : JobBase, IJob
|
||||
{
|
||||
private readonly ISysTasksQzService tasksQzService;
|
||||
private readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
||||
|
||||
public Job_SqlExecute(ISysTasksQzService tasksQzService)
|
||||
{
|
||||
this.tasksQzService = tasksQzService;
|
||||
}
|
||||
public async Task Execute(IJobExecutionContext context)
|
||||
{
|
||||
await ExecuteJob(context, async () => await Run(context));
|
||||
}
|
||||
public async Task Run(IJobExecutionContext context)
|
||||
{
|
||||
AbstractTrigger trigger = (context as JobExecutionContextImpl).Trigger as AbstractTrigger;
|
||||
|
||||
var info = await tasksQzService.GetByIdAsync(trigger.JobName);
|
||||
|
||||
if (info != null && info.SqlText.IsNotEmpty())
|
||||
{
|
||||
var result = DbScoped.SugarScope.Ado.ExecuteCommandWithGo(info.SqlText);
|
||||
logger.Info($"任务【{info.Name}】sql请求执行结果=" + result);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new CustomException($"任务{trigger?.JobName}执行失败,任务不存在");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user