feat;完成接口对接

This commit is contained in:
陈淳
2023-04-25 10:38:51 +08:00
parent 6a881e4613
commit 770e8d7310
6 changed files with 263 additions and 66 deletions

View File

@@ -25,10 +25,12 @@ namespace Yi.Furion.Application.Rbac.Services.Impl
/// <param name="jobId"></param>
/// <returns></returns>
[HttpGet("{jobId}")]
public SchedulerModel GetById([FromRoute] string jobId)
public TaskGetOutput GetById([FromRoute] string jobId)
{
var result = _schedulerFactory.TryGetJob(jobId, out var scheduler);
return scheduler.GetModel();
var data = scheduler.GetModel();
var output = data.JobDetail.Adapt<TaskGetOutput>();
return output;
}
/// <summary>

View File

@@ -9,5 +9,7 @@ namespace Yi.Furion.Core.Rbac.Dtos.Task
{
public class TaskGetListInput: PagedAllResultRequestDto
{
public string JobId { get; set; }
public string GroupName { get; set; }
}
}

View File

@@ -8,5 +8,78 @@ namespace Yi.Furion.Core.Rbac.Dtos.Task
{
public class TaskGetOutput
{
/// <summary>
/// 作业 Id
/// </summary>
public string JobId { get; internal set; }
/// <summary>
/// 作业组名称
/// </summary>
public string GroupName { get; internal set; }
/// <summary>
/// 作业处理程序类型
/// </summary>
/// <remarks>存储的是类型的 FullName</remarks>
public string JobType { get; internal set; }
/// <summary>
/// 作业处理程序类型所在程序集
/// </summary>
/// <remarks>存储的是程序集 Name</remarks>
public string AssemblyName { get; internal set; }
/// <summary>
/// 描述信息
/// </summary>
public string Description { get; internal set; }
/// <summary>
/// 是否采用并行执行
/// </summary>
/// <remarks>如果设置为 false那么使用串行执行</remarks>
public bool Concurrent { get; internal set; } = true;
/// <summary>
/// 是否扫描 IJob 实现类 [Trigger] 特性触发器
/// </summary>
public bool IncludeAnnotations { get; internal set; } = false;
/// <summary>
/// 作业信息额外数据
/// </summary>
public string Properties { get; internal set; } = "{}";
/// <summary>
/// 作业更新时间
/// </summary>
public DateTime? UpdatedTime { get; internal set; }
/// <summary>
/// 标记其他作业正在执行
/// </summary>
/// <remarks>当 <see cref="Concurrent"/> 为 false 时有效,也就是串行执行</remarks>
internal bool Blocked { get; set; } = false;
/// <summary>
/// 作业处理程序运行时类型
/// </summary>
internal string RuntimeJobType { get; set; }
/// <summary>
/// 作业信息额外数据运行时实例
/// </summary>
internal string RuntimeProperties { get; set; }
}
}

View File

@@ -430,6 +430,70 @@
作业信息额外数据运行时实例
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetOutput.JobId">
<summary>
作业 Id
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetOutput.GroupName">
<summary>
作业组名称
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetOutput.JobType">
<summary>
作业处理程序类型
</summary>
<remarks>存储的是类型的 FullName</remarks>
</member>
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetOutput.AssemblyName">
<summary>
作业处理程序类型所在程序集
</summary>
<remarks>存储的是程序集 Name</remarks>
</member>
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetOutput.Description">
<summary>
描述信息
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetOutput.Concurrent">
<summary>
是否采用并行执行
</summary>
<remarks>如果设置为 false那么使用串行执行</remarks>
</member>
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetOutput.IncludeAnnotations">
<summary>
是否扫描 IJob 实现类 [Trigger] 特性触发器
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetOutput.Properties">
<summary>
作业信息额外数据
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetOutput.UpdatedTime">
<summary>
作业更新时间
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetOutput.Blocked">
<summary>
标记其他作业正在执行
</summary>
<remarks><see cref="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetOutput.Concurrent"/> 为 false 时有效,也就是串行执行</remarks>
</member>
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetOutput.RuntimeJobType">
<summary>
作业处理程序运行时类型
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetOutput.RuntimeProperties">
<summary>
作业信息额外数据运行时实例
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.Dtos.User.UserCreateInputVo">
<summary>
User输入创建对象

View File

@@ -36,7 +36,7 @@ public class Startup : AppStartup
services.AddSchedule(options =>
{
// 注册作业,并配置作业触发器
//options.AddJob<SystemDataJob>(Triggers.Period(10000)); // 表示每秒执行
options.AddJob<TestJob>(Triggers.Period(10000)); // 表示每秒执行
options.AddJob<SystemDataJob>(Triggers.Cron("0 0 0,12 ? * ?",CronStringFormat.WithSeconds)); // 表示每天凌晨与12点
});
services.AddFileLogging("application-{0:yyyy}-{0:MM}-{0:dd}.log", options =>