123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 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}执行失败,任务不存在");
- }
- }
- }
- }
|