新增任务计划表

master
xiaochanghai 1 year ago
parent f6afce70eb
commit 7715963d3a
  1. 9470
      Model/Tiobon.Web.pdm
  2. 14
      Tiobon.Core.Api/Controllers/TasksQzController.cs
  3. 315
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  4. 4
      Tiobon.Core.Api/Tiobon.Core.xml
  5. 2
      Tiobon.Core.Api/appsettings.json
  6. 8
      Tiobon.Core.Common/Seed/DBSeed.cs
  7. 7
      Tiobon.Core.Extensions/HostedService/QuartzJobHostedService.cs
  8. 4
      Tiobon.Core.IServices/ITasksLogServices.cs
  9. 2
      Tiobon.Core.IServices/ITasksQzServices.cs
  10. 8
      Tiobon.Core.Model/Base/BasePoco.cs
  11. 32
      Tiobon.Core.Model/Models/Ghre/TasksLog.cs
  12. 84
      Tiobon.Core.Model/Models/Ghre/TasksQz.cs
  13. 94
      Tiobon.Core.Model/Models/TasksQz.cs
  14. 22
      Tiobon.Core.Services/TasksLogServices.cs
  15. 2
      Tiobon.Core.Services/TasksQzServices.cs
  16. 14
      Tiobon.Core.Tasks/QuartzNet/ISchedulerCenter.cs
  17. 2
      Tiobon.Core.Tasks/QuartzNet/Jobs/JobBase.cs
  18. 2
      Tiobon.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs
  19. 18
      Tiobon.Core.Tasks/QuartzNet/SchedulerCenterServer.cs

File diff suppressed because it is too large Load Diff

@ -30,7 +30,7 @@ namespace Tiobon.Core.Controllers
/// <returns></returns>
// GET: api/Buttons/5
[HttpGet]
public async Task<ServiceResult<PageModel<TasksQz>>> Get(int page = 1, string key = "")
public async Task<ServiceResult<PageModel<Ghre_TasksQz>>> Get(int page = 1, string key = "")
{
if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key))
{
@ -38,7 +38,7 @@ namespace Tiobon.Core.Controllers
}
int intPageSize = 50;
Expression<Func<TasksQz, bool>> whereExpression = a => a.IsDeleted != true && (a.Name != null && a.Name.Contains(key));
Expression<Func<Ghre_TasksQz, bool>> whereExpression = a => a.IsEnable == 1 && (a.Name != null && a.Name.Contains(key));
var data = await _tasksQzServices.QueryPage(whereExpression, page, intPageSize, " Id desc ");
if (data.dataCount > 0)
@ -48,7 +48,7 @@ namespace Tiobon.Core.Controllers
item.Triggers = await _schedulerCenter.GetTaskStaus(item);
}
}
return ServiceResult<PageModel<TasksQz>>.OprateSuccess(data.dataCount >= 0, "获取成功", data);
return ServiceResult<PageModel<Ghre_TasksQz>>.OprateSuccess(data.dataCount >= 0, "获取成功", data);
}
/// <summary>
@ -57,7 +57,7 @@ namespace Tiobon.Core.Controllers
/// <param name="tasksQz"></param>
/// <returns></returns>
[HttpPost]
public async Task<ServiceResult<string>> Post([FromBody] TasksQz tasksQz)
public async Task<ServiceResult<string>> Post([FromBody] Ghre_TasksQz tasksQz)
{
var data = new ServiceResult<string>();
_unitOfWorkManage.BeginTran();
@ -112,7 +112,7 @@ namespace Tiobon.Core.Controllers
/// <param name="tasksQz"></param>
/// <returns></returns>
[HttpPut]
public async Task<ServiceResult<string>> Put([FromBody] TasksQz tasksQz)
public async Task<ServiceResult<string>> Put([FromBody] Ghre_TasksQz tasksQz)
{
var data = new ServiceResult<string>();
if (tasksQz != null && tasksQz.Id > 0)
@ -519,10 +519,10 @@ namespace Tiobon.Core.Controllers
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<ServiceResult<PageModel<TasksLog>>> GetTaskLogs(long jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart = null, DateTime? runTimeEnd = null)
public async Task<ServiceResult<PageModel<Ghre_TasksLog>>> GetTaskLogs(long jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart = null, DateTime? runTimeEnd = null)
{
var model = await _tasksLogServices.GetTaskLogs(jobId, page, pageSize, runTimeStart, runTimeEnd);
return ServiceResult<PageModel<TasksLog>>.OprateSuccess(model.dataCount >= 0, "获取成功", model);
return ServiceResult<PageModel<Ghre_TasksLog>>.OprateSuccess(model.dataCount >= 0, "获取成功", model);
}
/// <summary>
/// 任务概况

@ -1158,6 +1158,146 @@
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_TasksLog">
<summary>
任务日志表
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksLog.JobId">
<summary>
任务ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksLog.TotalTime">
<summary>
任务耗时
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksLog.RunResult">
<summary>
执行结果(0-失败 1-成功)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksLog.RunTime">
<summary>
运行时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksLog.EndTime">
<summary>
结束时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksLog.RunPars">
<summary>
执行参数
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksLog.ErrMessage">
<summary>
异常信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksLog.ErrStackTrace">
<summary>
异常堆栈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksLog.Name">
<summary>
任务名称
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksLog.JobGroup">
<summary>
任务分组
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_TasksQz">
<summary>
任务计划表
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.Name">
<summary>
任务名称
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.JobGroup">
<summary>
任务分组
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.Cron">
<summary>
任务运行时间表达式
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.AssemblyName">
<summary>
任务所在DLL对应的程序集名称
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.ClassName">
<summary>
任务所在类
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.Remark">
<summary>
任务描述
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.RunTimes">
<summary>
执行次数
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.BeginTime">
<summary>
开始时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.EndTime">
<summary>
结束时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.TriggerType">
<summary>
触发器类型(0、simple 1、cron)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.IntervalSecond">
<summary>
执行间隔时间, 秒为单位
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.CycleRunTimes">
<summary>
循环执行次数
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.CycleHasRunTimes">
<summary>
已循环次数
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.IsStart">
<summary>
是否启动
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.JobParams">
<summary>
执行传参
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TasksQz.Triggers">
<summary>
任务内存中的状态
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghrs_User">
<summary>
系统用户 (Model)
@ -1909,181 +2049,6 @@
租户Id
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.TasksLog">
<summary>
任务日志表
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.JobId">
<summary>
任务ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.TotalTime">
<summary>
任务耗时
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.RunResult">
<summary>
执行结果(0-失败 1-成功)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.RunTime">
<summary>
运行时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.EndTime">
<summary>
结束时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.RunPars">
<summary>
执行参数
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.ErrMessage">
<summary>
异常信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.ErrStackTrace">
<summary>
异常堆栈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.CreateId">
<summary>
创建ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.CreateBy">
<summary>
创建者
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.ModifyId">
<summary>
修改ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.ModifyBy">
<summary>
修改者
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.ModifyTime">
<summary>
修改时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.Name">
<summary>
任务名称
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksLog.JobGroup">
<summary>
任务分组
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.TasksQz">
<summary>
任务计划表
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.Name">
<summary>
任务名称
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.JobGroup">
<summary>
任务分组
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.Cron">
<summary>
任务运行时间表达式
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.AssemblyName">
<summary>
任务所在DLL对应的程序集名称
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.ClassName">
<summary>
任务所在类
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.Remark">
<summary>
任务描述
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.RunTimes">
<summary>
执行次数
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.BeginTime">
<summary>
开始时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.EndTime">
<summary>
结束时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.TriggerType">
<summary>
触发器类型(0、simple 1、cron)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.IntervalSecond">
<summary>
执行间隔时间, 秒为单位
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.CycleRunTimes">
<summary>
循环执行次数
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.CycleHasRunTimes">
<summary>
已循环次数
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.IsStart">
<summary>
是否启动
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.JobParams">
<summary>
执行传参
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.TasksQz.Triggers">
<summary>
任务内存中的状态
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.BusinessTable">
<summary>
业务数据 <br/>

@ -404,14 +404,14 @@
<param name="key"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Controllers.TasksQzController.Post(Tiobon.Core.Model.Models.TasksQz)">
<member name="M:Tiobon.Core.Controllers.TasksQzController.Post(Tiobon.Core.Model.Models.Ghre_TasksQz)">
<summary>
添加计划任务
</summary>
<param name="tasksQz"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Controllers.TasksQzController.Put(Tiobon.Core.Model.Models.TasksQz)">
<member name="M:Tiobon.Core.Controllers.TasksQzController.Put(Tiobon.Core.Model.Models.Ghre_TasksQz)">
<summary>
修改计划任务
</summary>

@ -268,7 +268,7 @@
"Enabled": false
},
"QuartzNetJob": {
"Enabled": false
"Enabled": true
},
"Consul": {
"Enabled": false

@ -295,12 +295,12 @@ namespace Tiobon.Core.Common.Seed
#region TasksQz
if (!await myContext.Db.Queryable<TasksQz>().AnyAsync())
if (!await myContext.Db.Queryable<Ghre_TasksQz>().AnyAsync())
{
var data = JsonConvert.DeserializeObject<List<TasksQz>>(
var data = JsonConvert.DeserializeObject<List<Ghre_TasksQz>>(
FileHelper.ReadFile(string.Format(SeedDataFolder, "TasksQz"), Encoding.UTF8), setting);
myContext.GetEntityDB<TasksQz>().InsertRange(data);
myContext.GetEntityDB<Ghre_TasksQz>().InsertRange(data);
Console.WriteLine("Table:TasksQz created success!");
}
else
@ -312,7 +312,7 @@ namespace Tiobon.Core.Common.Seed
#region TasksLog
if (!await myContext.Db.Queryable<TasksLog>().AnyAsync())
if (!await myContext.Db.Queryable<Ghre_TasksLog>().AnyAsync())
{
Console.WriteLine("Table:TasksLog created success!");
}

@ -1,11 +1,8 @@
using System;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Tiobon.Core.Common;
using Tiobon.Core.IServices;
using Tiobon.Core.Tasks;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
namespace Tiobon.Core.Extensions.HostedService;

@ -10,9 +10,9 @@ namespace Tiobon.Core.IServices
/// <summary>
/// ITasksLogServices
/// </summary>
public interface ITasksLogServices :IBaseServices<TasksLog>
public interface ITasksLogServices :IBaseServices<Ghre_TasksLog>
{
public Task<PageModel<TasksLog>> GetTaskLogs(long jobId, int page, int intPageSize,DateTime? runTime,DateTime? endTime);
public Task<PageModel<Ghre_TasksLog>> GetTaskLogs(long jobId, int page, int intPageSize,DateTime? runTime,DateTime? endTime);
public Task<object> GetTaskOverview(long jobId, DateTime? runTime, DateTime? endTime, string type);
}
}

@ -7,7 +7,7 @@ namespace Tiobon.Core.IServices
/// <summary>
/// ITasksQzServices
/// </summary>
public interface ITasksQzServices :IBaseServices<TasksQz>
public interface ITasksQzServices :IBaseServices<Ghre_TasksQz>
{

@ -1,10 +1,9 @@
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using SqlSugar;
using Tiobon.Core.Model.Models.RootTkey.Interface;
namespace Tiobon.Core.Model
{
namespace Tiobon.Core.Model;
public class BasePoco : BasePoco1
{
@ -79,4 +78,3 @@ namespace Tiobon.Core.Model
public string UpdateIP { get; set; }
}
}

@ -6,7 +6,7 @@ namespace Tiobon.Core.Model.Models
/// <summary>
/// 任务日志表
/// </summary>
public class TasksLog : RootEntityTkey<long>
public class Ghre_TasksLog : BasePoco
{
/// <summary>
/// 任务ID
@ -44,36 +44,6 @@ namespace Tiobon.Core.Model.Models
[SugarColumn(Length = 2000, IsNullable = true)]
public string ErrStackTrace { get; set; }
/// <summary>
/// 创建ID
/// </summary>
[SugarColumn(IsNullable = true)]
public int? CreateId { get; set; }
/// <summary>
/// 创建者
/// </summary>
[SugarColumn(Length = 50, IsNullable = true)]
public string CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[SugarColumn(IsNullable = true)]
public DateTime CreateTime { get; set; } = DateTime.Now;
/// <summary>
/// 修改ID
/// </summary>
[SugarColumn(IsNullable = true)]
public int? ModifyId { get; set; }
/// <summary>
/// 修改者
/// </summary>
[SugarColumn(Length = 100, IsNullable = true)]
public string ModifyBy { get; set; }
/// <summary>
/// 修改时间
/// </summary>
[SugarColumn(IsNullable = true)]
public DateTime? ModifyTime { get; set; } = DateTime.Now;
/// <summary>
/// 任务名称
/// </summary>
[SugarColumn(IsIgnore = true)]

@ -0,0 +1,84 @@
using SqlSugar;
using Tiobon.Core.Model.ViewModels;
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 任务计划表
/// </summary>
[SugarTable("Ghre_TasksQz", "Ghre_TasksQz"), Entity(TableCnName = "任务计划表", TableName = "Ghre_TasksQz")]
public class Ghre_TasksQz : BasePoco
{
/// <summary>
/// 任务名称
/// </summary>
[SugarColumn(Length = 200, IsNullable = true)]
public string Name { get; set; }
/// <summary>
/// 任务分组
/// </summary>
[SugarColumn(Length = 200, IsNullable = true)]
public string JobGroup { get; set; }
/// <summary>
/// 任务运行时间表达式
/// </summary>
[SugarColumn(Length = 200, IsNullable = true)]
public string Cron { get; set; }
/// <summary>
/// 任务所在DLL对应的程序集名称
/// </summary>
[SugarColumn(Length = 200, IsNullable = true)]
public string AssemblyName { get; set; }
/// <summary>
/// 任务所在类
/// </summary>
[SugarColumn(Length = 200, IsNullable = true)]
public string ClassName { get; set; }
/// <summary>
/// 任务描述
/// </summary>
[SugarColumn(Length = 1000, IsNullable = true)]
public string Remark { get; set; }
/// <summary>
/// 执行次数
/// </summary>
public int RunTimes { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public DateTime? BeginTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 触发器类型(0、simple 1、cron)
/// </summary>
public int TriggerType { get; set; }
/// <summary>
/// 执行间隔时间, 秒为单位
/// </summary>
public int IntervalSecond { get; set; }
/// <summary>
/// 循环执行次数
/// </summary>
public int CycleRunTimes { get; set; }
/// <summary>
/// 已循环次数
/// </summary>
public int CycleHasRunTimes { get; set; }
/// <summary>
/// 是否启动
/// </summary>
public bool IsStart { get; set; } = false;
/// <summary>
/// 执行传参
/// </summary>
public string JobParams { get; set; }
/// <summary>
/// 任务内存中的状态
/// </summary>
[SugarColumn(IsIgnore = true)]
public List<TaskInfoDto> Triggers { get; set; }
}

@ -1,94 +0,0 @@
using Tiobon.Core.Model.ViewModels;
using SqlSugar;
using System;
using System.Collections.Generic;
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// 任务计划表
/// </summary>
public class TasksQz : RootEntityTkey<long>
{
/// <summary>
/// 任务名称
/// </summary>
[SugarColumn(Length = 200, IsNullable = true)]
public string Name { get; set; }
/// <summary>
/// 任务分组
/// </summary>
[SugarColumn(Length = 200, IsNullable = true)]
public string JobGroup { get; set; }
/// <summary>
/// 任务运行时间表达式
/// </summary>
[SugarColumn(Length = 200, IsNullable = true)]
public string Cron { get; set; }
/// <summary>
/// 任务所在DLL对应的程序集名称
/// </summary>
[SugarColumn(Length = 200, IsNullable = true)]
public string AssemblyName { get; set; }
/// <summary>
/// 任务所在类
/// </summary>
[SugarColumn(Length = 200, IsNullable = true)]
public string ClassName { get; set; }
/// <summary>
/// 任务描述
/// </summary>
[SugarColumn(Length = 1000, IsNullable = true)]
public string Remark { get; set; }
/// <summary>
/// 执行次数
/// </summary>
public int RunTimes { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public DateTime? BeginTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 触发器类型(0、simple 1、cron)
/// </summary>
public int TriggerType { get; set; }
/// <summary>
/// 执行间隔时间, 秒为单位
/// </summary>
public int IntervalSecond { get; set; }
/// <summary>
/// 循环执行次数
/// </summary>
public int CycleRunTimes { get; set; }
/// <summary>
/// 已循环次数
/// </summary>
public int CycleHasRunTimes { get; set; }
/// <summary>
/// 是否启动
/// </summary>
public bool IsStart { get; set; } = false;
/// <summary>
/// 执行传参
/// </summary>
public string JobParams { get; set; }
[SugarColumn(IsNullable = true)]
public bool? IsDeleted { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[SugarColumn(IsNullable = true)]
public DateTime CreateTime { get; set; } = DateTime.Now;
/// <summary>
/// 任务内存中的状态
/// </summary>
[SugarColumn(IsIgnore = true)]
public List<TaskInfoDto> Triggers { get; set; }
}
}

@ -12,20 +12,20 @@ using System.Linq;
namespace Tiobon.Core.Services
{
public partial class TasksLogServices : BaseServices<TasksLog>, ITasksLogServices
public partial class TasksLogServices : BaseServices<Ghre_TasksLog>, ITasksLogServices
{
public async Task<PageModel<TasksLog>> GetTaskLogs(long jobId, int page, int intPageSize, DateTime? runTime, DateTime? endTime)
public async Task<PageModel<Ghre_TasksLog>> GetTaskLogs(long jobId, int page, int intPageSize, DateTime? runTime, DateTime? endTime)
{
RefAsync<int> totalCount = 0;
Expression<Func<TasksLog, bool>> whereExpression = log => true;
Expression<Func<Ghre_TasksLog, bool>> whereExpression = log => true;
if (jobId > 0) whereExpression = whereExpression.And(log => log.JobId == jobId);
var data = await this.Db.Queryable<TasksLog>()
.LeftJoin<TasksQz>((log, qz) => log.JobId == qz.Id)
var data = await this.Db.Queryable<Ghre_TasksLog>()
.LeftJoin<Ghre_TasksQz>((log, qz) => log.JobId == qz.Id)
.OrderByDescending((log) => log.RunTime)
.WhereIF(jobId > 0, (log) => log.JobId == jobId)
.WhereIF(runTime != null, (log) => log.RunTime >= runTime.Value)
.WhereIF(endTime != null, (log) => log.RunTime <= endTime.Value)
.Select((log, qz) => new TasksLog
.Select((log, qz) => new Ghre_TasksLog
{
RunPars = log.RunPars,
RunResult = log.RunResult,
@ -39,7 +39,7 @@ namespace Tiobon.Core.Services
})
.ToPageListAsync(page, intPageSize, totalCount);
return new PageModel<TasksLog>(page, totalCount, intPageSize, data);
return new PageModel<Ghre_TasksLog>(page, totalCount, intPageSize, data);
}
public async Task<object> GetTaskOverview(long jobId, DateTime? runTime, DateTime? endTime, string type)
{
@ -55,7 +55,7 @@ namespace Tiobon.Core.Services
days--;
}
var queryableLeft = this.Db.Reportable(dayArray).ToQueryable<DateTime>();
var queryableRight = this.Db.Queryable<TasksLog>().Where((x) => x.RunTime.Year >= runTime.Value.Year && x.RunTime.Year <= endTime.Value.Year); ; ; //声名表
var queryableRight = this.Db.Queryable<Ghre_TasksLog>().Where((x) => x.RunTime.Year >= runTime.Value.Year && x.RunTime.Year <= endTime.Value.Year); ; ; //声名表
var list = this.Db.Queryable(queryableLeft, queryableRight, JoinType.Left,
(x1, x2) => x1.ColumnName.Year == x2.RunTime.Year)
@ -71,7 +71,7 @@ namespace Tiobon.Core.Services
{
//按月
var queryableLeft = this.Db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable<DateTime>(); //生成月份 //ReportableDateType.MonthsInLast1yea 表式近一年月份 并且queryable之后还能在where过滤
var queryableRight = this.Db.Queryable<TasksLog>().Where((x) => x.RunTime.Year == runTime.Value.Year); //声名表
var queryableRight = this.Db.Queryable<Ghre_TasksLog>().Where((x) => x.RunTime.Year == runTime.Value.Year); //声名表
//月份和表JOIN
var list = queryableLeft
@ -97,7 +97,7 @@ namespace Tiobon.Core.Services
var queryableLeft = this.Db.Reportable(dayArray).ToQueryable<DateTime>();
var star = Convert.ToDateTime(runTime.Value.ToString("yyyy-MM-01 00:00:00"));
var end = Convert.ToDateTime(runTime.Value.ToString($"yyyy-MM-{days} 23:59:59"));
var queryableRight = this.Db.Queryable<TasksLog>().Where((x) => x.RunTime >= star && x.RunTime <= end); ; ; //声名表
var queryableRight = this.Db.Queryable<Ghre_TasksLog>().Where((x) => x.RunTime >= star && x.RunTime <= end); ; ; //声名表
var list = this.Db.Queryable(queryableLeft, queryableRight, JoinType.Left,
(x1, x2) => x1.ColumnName.Date == x2.RunTime.Date)
@ -117,7 +117,7 @@ namespace Tiobon.Core.Services
var days = 24;
var dayArray = Enumerable.Range(0, days).Select(it => Convert.ToDateTime(time.ToString($"yyyy-MM-dd {it.ToString().PadLeft(2, '0')}:00:00"))).ToList();//转成时间数组
var queryableLeft = this.Db.Reportable(dayArray).ToQueryable<DateTime>();
var queryableRight = this.Db.Queryable<TasksLog>().Where((x) => x.RunTime >= runTime.Value.Date && x.RunTime <= runTime.Value.Date.AddDays(1).AddMilliseconds(-1)); //声名表
var queryableRight = this.Db.Queryable<Ghre_TasksLog>().Where((x) => x.RunTime >= runTime.Value.Date && x.RunTime <= runTime.Value.Date.AddDays(1).AddMilliseconds(-1)); //声名表
var list = this.Db.Queryable(queryableLeft, queryableRight, JoinType.Left,
(x1, x2) => x1.ColumnName.Hour == x2.RunTime.Hour)

@ -5,7 +5,7 @@ using Tiobon.Core.Services.BASE;
namespace Tiobon.Core.Services
{
public partial class TasksQzServices : BaseServices<TasksQz>, ITasksQzServices
public partial class TasksQzServices : BaseServices<Ghre_TasksQz>, ITasksQzServices
{
}

@ -27,38 +27,38 @@ namespace Tiobon.Core.Tasks
/// </summary>
/// <param name="sysSchedule"></param>
/// <returns></returns>
Task<ServiceResult<string>> AddScheduleJobAsync(TasksQz sysSchedule);
Task<ServiceResult<string>> AddScheduleJobAsync(Ghre_TasksQz sysSchedule);
/// <summary>
/// 停止一个任务
/// </summary>
/// <param name="sysSchedule"></param>
/// <returns></returns>
Task<ServiceResult<string>> StopScheduleJobAsync(TasksQz sysSchedule);
Task<ServiceResult<string>> StopScheduleJobAsync(Ghre_TasksQz sysSchedule);
/// <summary>
/// 检测任务是否存在
/// </summary>
/// <param name="sysSchedule"></param>
/// <returns></returns>
Task<bool> IsExistScheduleJobAsync(TasksQz sysSchedule);
Task<bool> IsExistScheduleJobAsync(Ghre_TasksQz sysSchedule);
/// <summary>
/// 暂停指定的计划任务
/// </summary>
/// <param name="sysSchedule"></param>
/// <returns></returns>
Task<ServiceResult<string>> PauseJob(TasksQz sysSchedule);
Task<ServiceResult<string>> PauseJob(Ghre_TasksQz sysSchedule);
/// <summary>
/// 恢复一个任务
/// </summary>
/// <param name="sysSchedule"></param>
/// <returns></returns>
Task<ServiceResult<string>> ResumeJob(TasksQz sysSchedule);
Task<ServiceResult<string>> ResumeJob(Ghre_TasksQz sysSchedule);
/// <summary>
/// 获取任务触发器状态
/// </summary>
/// <param name="sysSchedule"></param>
/// <returns></returns>
Task<List<TaskInfoDto>> GetTaskStaus(TasksQz sysSchedule);
Task<List<TaskInfoDto>> GetTaskStaus(Ghre_TasksQz sysSchedule);
/// <summary>
/// 获取触发器标识
/// </summary>
@ -71,7 +71,7 @@ namespace Tiobon.Core.Tasks
/// </summary>
/// <param name="tasksQz"></param>
/// <returns></returns>
Task<ServiceResult<string>> ExecuteJobAsync(TasksQz tasksQz);
Task<ServiceResult<string>> ExecuteJobAsync(Ghre_TasksQz tasksQz);
}

@ -25,7 +25,7 @@ namespace Tiobon.Core.Tasks
public async Task<string> ExecuteJob(IJobExecutionContext context, Func<Task> func)
{
//记录Job
TasksLog tasksLog = new TasksLog();
Ghre_TasksLog tasksLog = new Ghre_TasksLog();
//JOBID
int jobid = context.JobDetail.Key.Name.ObjToInt();
//JOB组名

@ -24,7 +24,7 @@ namespace Tiobon.Core.Tasks
public async Task Run(IJobExecutionContext context)
{
System.Console.WriteLine($"Job_Tiobons_Quartz 执行 {DateTime.Now.ToShortTimeString()}");
var list = await _TiobonArticleServices.Query();
//var list = await _TiobonArticleServices.Query();
// 也可以通过数据库配置,获取传递过来的参数
JobDataMap data = context.JobDetail.JobDataMap;
//int jobId = data.GetInt("JobParam");

@ -110,7 +110,7 @@ namespace Tiobon.Core.Tasks
/// <typeparam name="T"></typeparam>
/// <param name="tasksQz"></param>
/// <returns></returns>
public async Task<ServiceResult<string>> AddScheduleJobAsync(TasksQz tasksQz)
public async Task<ServiceResult<string>> AddScheduleJobAsync(Ghre_TasksQz tasksQz)
{
var result = new ServiceResult<string>();
@ -208,7 +208,7 @@ namespace Tiobon.Core.Tasks
/// 任务是否存在?
/// </summary>
/// <returns></returns>
public async Task<bool> IsExistScheduleJobAsync(TasksQz sysSchedule)
public async Task<bool> IsExistScheduleJobAsync(Ghre_TasksQz sysSchedule)
{
JobKey jobKey = new JobKey(sysSchedule.Id.ToString(), sysSchedule.JobGroup);
if (await _scheduler.Result.CheckExists(jobKey))
@ -224,7 +224,7 @@ namespace Tiobon.Core.Tasks
/// 暂停一个指定的计划任务
/// </summary>
/// <returns></returns>
public async Task<ServiceResult<string>> StopScheduleJobAsync(TasksQz sysSchedule)
public async Task<ServiceResult<string>> StopScheduleJobAsync(Ghre_TasksQz sysSchedule)
{
var result = new ServiceResult<string>();
try
@ -255,7 +255,7 @@ namespace Tiobon.Core.Tasks
/// </summary>
/// <param name="sysSchedule"></param>
/// <returns></returns>
public async Task<ServiceResult<string>> ResumeJob(TasksQz sysSchedule)
public async Task<ServiceResult<string>> ResumeJob(Ghre_TasksQz sysSchedule)
{
var result = new ServiceResult<string>();
try
@ -282,7 +282,7 @@ namespace Tiobon.Core.Tasks
/// </summary>
/// <param name="sysSchedule"></param>
/// <returns></returns>
public async Task<ServiceResult<string>> PauseJob(TasksQz sysSchedule)
public async Task<ServiceResult<string>> PauseJob(Ghre_TasksQz sysSchedule)
{
var result = new ServiceResult<string>();
try
@ -305,7 +305,7 @@ namespace Tiobon.Core.Tasks
}
}
#region 状态状态帮助方法
public async Task<List<TaskInfoDto>> GetTaskStaus(TasksQz sysSchedule)
public async Task<List<TaskInfoDto>> GetTaskStaus(Ghre_TasksQz sysSchedule)
{
var ls = new List<TaskInfoDto>();
@ -401,7 +401,7 @@ namespace Tiobon.Core.Tasks
/// <param name="starRunTime"></param>
/// <param name="endRunTime"></param>
/// <returns></returns>
private ITrigger CreateSimpleTrigger(TasksQz sysSchedule)
private ITrigger CreateSimpleTrigger(Ghre_TasksQz sysSchedule)
{
if (sysSchedule.CycleRunTimes > 0)
{
@ -436,7 +436,7 @@ namespace Tiobon.Core.Tasks
/// </summary>
/// <param name="m"></param>
/// <returns></returns>
private ITrigger CreateCronTrigger(TasksQz sysSchedule)
private ITrigger CreateCronTrigger(Ghre_TasksQz sysSchedule)
{
// 作业触发器
return TriggerBuilder.Create()
@ -455,7 +455,7 @@ namespace Tiobon.Core.Tasks
/// </summary>
/// <param name="tasksQz"></param>
/// <returns></returns>
public async Task<ServiceResult<string>> ExecuteJobAsync(TasksQz tasksQz)
public async Task<ServiceResult<string>> ExecuteJobAsync(Ghre_TasksQz tasksQz)
{
var result = new ServiceResult<string>();
try

Loading…
Cancel
Save