feat:完善job dto
This commit is contained in:
@@ -25,7 +25,7 @@ namespace Yi.Furion.Application.Rbac.Services.Impl
|
||||
/// <param name="jobId"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("{jobId}")]
|
||||
public SchedulerModel GetById([FromRoute]string jobId)
|
||||
public SchedulerModel GetById([FromRoute] string jobId)
|
||||
{
|
||||
var result = _schedulerFactory.TryGetJob(jobId, out var scheduler);
|
||||
return scheduler.GetModel();
|
||||
@@ -36,10 +36,16 @@ namespace Yi.Furion.Application.Rbac.Services.Impl
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("")]
|
||||
public PagedResultDto<SchedulerModel> GetList([FromQuery]TaskGetListInput input)
|
||||
public PagedResultDto<TaskGetListOutput> GetList([FromQuery] TaskGetListInput input)
|
||||
{
|
||||
var data = _schedulerFactory.GetJobsOfModels().Skip(input.PageNum * input.PageSize).Take(input.PageSize).OrderByDescending(x => x.JobDetail.UpdatedTime).ToList();
|
||||
return new PagedResultDto<SchedulerModel>(data.Count(), data);
|
||||
var data = _schedulerFactory.GetJobsOfModels().Skip((input.PageNum - 1) * input.PageSize).Take(input.PageSize).OrderByDescending(x => x.JobDetail.UpdatedTime)
|
||||
|
||||
.ToList();
|
||||
var output = data.Select(x => x.JobDetail).Adapt<List<TaskGetListOutput>>();
|
||||
|
||||
|
||||
|
||||
return new PagedResultDto<TaskGetListOutput>(data.Count(), output);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -53,7 +59,7 @@ namespace Yi.Furion.Application.Rbac.Services.Impl
|
||||
|
||||
//jobBuilder
|
||||
var jobBuilder = JobBuilder.Create(input.AssemblyName, input.JobTypeFullName).SetJobId(input.JobId).SetGroupName(input.GroupName);
|
||||
//.SetConcurrent(input.Concurrent).SetDescription(input.Description).SetProperties(Newtonsoft.Json.JsonConvert.SerializeObject(input.Properties));
|
||||
//.SetConcurrent(input.Concurrent).SetDescription(input.Description).SetProperties(Newtonsoft.Json.JsonConvert.SerializeObject(input.Properties));
|
||||
|
||||
//triggerBuilder
|
||||
//毫秒
|
||||
@@ -122,7 +128,7 @@ namespace Yi.Furion.Application.Rbac.Services.Impl
|
||||
/// <param name="jobId"></param>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
public ScheduleResult Update(string jobId,TaskUpdateInput input)
|
||||
public ScheduleResult Update(string jobId, TaskUpdateInput input)
|
||||
{
|
||||
//jobBuilder
|
||||
var jobBuilder = JobBuilder.Create(input.AssemblyName, input.JobTypeFullName).SetJobId(jobId).SetGroupName(input.GroupName)
|
||||
|
||||
@@ -111,6 +111,25 @@ namespace Yi.Furion.Core.Rbac.DataSeeds
|
||||
};
|
||||
entities.Add(server);
|
||||
|
||||
//定时任务
|
||||
MenuEntity task = new MenuEntity()
|
||||
{
|
||||
Id = SnowflakeHelper.NextId,
|
||||
MenuName = "定时任务",
|
||||
PermissionCode = "monitor:job:list",
|
||||
MenuType = MenuTypeEnum.Menu,
|
||||
Router = "job",
|
||||
IsShow = true,
|
||||
IsLink = false,
|
||||
IsCache = true,
|
||||
Component = "monitor/job/index",
|
||||
MenuIcon = "server",
|
||||
OrderNum = 97,
|
||||
ParentId = monitoring.Id,
|
||||
IsDeleted = false
|
||||
};
|
||||
entities.Add(task);
|
||||
|
||||
|
||||
//系统工具
|
||||
MenuEntity tool = new MenuEntity()
|
||||
|
||||
@@ -2,11 +2,84 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Yi.Furion.Core.Rbac.Dtos.Task
|
||||
{
|
||||
public class TaskGetListOutput
|
||||
{
|
||||
/// <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; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -366,6 +366,70 @@
|
||||
Role输入创建对象
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetListOutput.JobId">
|
||||
<summary>
|
||||
作业 Id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetListOutput.GroupName">
|
||||
<summary>
|
||||
作业组名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetListOutput.JobType">
|
||||
<summary>
|
||||
作业处理程序类型
|
||||
</summary>
|
||||
<remarks>存储的是类型的 FullName</remarks>
|
||||
</member>
|
||||
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetListOutput.AssemblyName">
|
||||
<summary>
|
||||
作业处理程序类型所在程序集
|
||||
</summary>
|
||||
<remarks>存储的是程序集 Name</remarks>
|
||||
</member>
|
||||
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetListOutput.Description">
|
||||
<summary>
|
||||
描述信息
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetListOutput.Concurrent">
|
||||
<summary>
|
||||
是否采用并行执行
|
||||
</summary>
|
||||
<remarks>如果设置为 false,那么使用串行执行</remarks>
|
||||
</member>
|
||||
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetListOutput.IncludeAnnotations">
|
||||
<summary>
|
||||
是否扫描 IJob 实现类 [Trigger] 特性触发器
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetListOutput.Properties">
|
||||
<summary>
|
||||
作业信息额外数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetListOutput.UpdatedTime">
|
||||
<summary>
|
||||
作业更新时间
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetListOutput.Blocked">
|
||||
<summary>
|
||||
标记其他作业正在执行
|
||||
</summary>
|
||||
<remarks>当 <see cref="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetListOutput.Concurrent"/> 为 false 时有效,也就是串行执行</remarks>
|
||||
</member>
|
||||
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetListOutput.RuntimeJobType">
|
||||
<summary>
|
||||
作业处理程序运行时类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Yi.Furion.Core.Rbac.Dtos.Task.TaskGetListOutput.RuntimeProperties">
|
||||
<summary>
|
||||
作业信息额外数据运行时实例
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Yi.Furion.Core.Rbac.Dtos.User.UserCreateInputVo">
|
||||
<summary>
|
||||
User输入创建对象
|
||||
|
||||
@@ -36,8 +36,8 @@ public class Startup : AppStartup
|
||||
services.AddSchedule(options =>
|
||||
{
|
||||
// 注册作业,并配置作业触发器
|
||||
// options.AddJob<SystemDataJob>(Triggers.Period(10000)); // 表示每秒执行
|
||||
options.AddJob<SystemDataJob>(Triggers.Cron("0 0 0,12 ? * ?",CronStringFormat.WithSeconds)); // 表示每天凌晨与12点
|
||||
//options.AddJob<SystemDataJob>(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 =>
|
||||
{
|
||||
|
||||
@@ -87,17 +87,29 @@
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="jobList" @selection-change="handleSelectionChange">
|
||||
|
||||
|
||||
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="任务编号" width="100" align="center" prop="jobId" />
|
||||
<el-table-column label="任务名称" align="center" prop="jobName" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="任务组名" align="center" prop="jobGroup">
|
||||
<template #default="scope">
|
||||
|
||||
<el-table-column label="任务Id" width="100" align="center" prop="jobId" />
|
||||
|
||||
<el-table-column label="任务组名" align="center" prop="groupName">
|
||||
<!-- <template #default="scope">
|
||||
<dict-tag :options="sys_job_group" :value="scope.row.jobGroup" />
|
||||
</template>
|
||||
</template> -->
|
||||
</el-table-column>
|
||||
<el-table-column label="调用目标字符串" align="center" prop="invokeTarget" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="程序集" align="center" prop="assemblyName" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="类型" align="center" prop="jobType" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="cron执行表达式" align="center" prop="cronExpression" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="状态" align="center">
|
||||
<el-table-column label="毫秒间隔周期" align="center" prop="cronExpression" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="参数" align="center" prop="properties" :show-overflow-tooltip="true" />
|
||||
|
||||
<el-table-column label="是否并行" align="center" prop="concurrent" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="最后更新时间" align="center" prop="updatedTime" :show-overflow-tooltip="true" />
|
||||
|
||||
<el-table-column label="描述" align="center" prop="description" :show-overflow-tooltip="true" />
|
||||
<!-- <el-table-column label="状态" align="center">
|
||||
<template #default="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.status"
|
||||
@@ -106,7 +118,7 @@
|
||||
@change="handleStatusChange(scope.row)"
|
||||
></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
|
||||
Reference in New Issue
Block a user