diff --git a/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/Impl/TaskService.cs b/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/Impl/TaskService.cs
index 3a78b0df..eed3d13b 100644
--- a/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/Impl/TaskService.cs
+++ b/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/Impl/TaskService.cs
@@ -25,7 +25,7 @@ namespace Yi.Furion.Application.Rbac.Services.Impl
///
///
[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
///
///
[HttpGet("")]
- public PagedResultDto GetList([FromQuery]TaskGetListInput input)
+ public PagedResultDto 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(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>();
+
+
+
+ return new PagedResultDto(data.Count(), output);
}
///
@@ -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
///
///
///
- 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)
diff --git a/Yi.Furion.Net6/Yi.Furion.Core/Rbac/DataSeeds/MenuDataSeed.cs b/Yi.Furion.Net6/Yi.Furion.Core/Rbac/DataSeeds/MenuDataSeed.cs
index 512650c2..f33769ac 100644
--- a/Yi.Furion.Net6/Yi.Furion.Core/Rbac/DataSeeds/MenuDataSeed.cs
+++ b/Yi.Furion.Net6/Yi.Furion.Core/Rbac/DataSeeds/MenuDataSeed.cs
@@ -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()
diff --git a/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskGetListOutput.cs b/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskGetListOutput.cs
index 1db63ace..168b7b42 100644
--- a/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskGetListOutput.cs
+++ b/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskGetListOutput.cs
@@ -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
{
+ ///
+ /// 作业 Id
+ ///
+
+ public string JobId { get; internal set; }
+
+ ///
+ /// 作业组名称
+ ///
+
+ public string GroupName { get; internal set; }
+
+ ///
+ /// 作业处理程序类型
+ ///
+ /// 存储的是类型的 FullName
+
+ public string JobType { get; internal set; }
+
+ ///
+ /// 作业处理程序类型所在程序集
+ ///
+ /// 存储的是程序集 Name
+
+ public string AssemblyName { get; internal set; }
+
+ ///
+ /// 描述信息
+ ///
+
+ public string Description { get; internal set; }
+
+ ///
+ /// 是否采用并行执行
+ ///
+ /// 如果设置为 false,那么使用串行执行
+
+ public bool Concurrent { get; internal set; } = true;
+
+ ///
+ /// 是否扫描 IJob 实现类 [Trigger] 特性触发器
+ ///
+
+ public bool IncludeAnnotations { get; internal set; } = false;
+
+ ///
+ /// 作业信息额外数据
+ ///
+
+ public string Properties { get; internal set; } = "{}";
+
+ ///
+ /// 作业更新时间
+ ///
+
+ public DateTime? UpdatedTime { get; internal set; }
+
+ ///
+ /// 标记其他作业正在执行
+ ///
+ /// 当 为 false 时有效,也就是串行执行
+ internal bool Blocked { get; set; } = false;
+
+ ///
+ /// 作业处理程序运行时类型
+ ///
+ internal string RuntimeJobType { get; set; }
+
+ ///
+ /// 作业信息额外数据运行时实例
+ ///
+ internal string RuntimeProperties { get; set; }
}
}
diff --git a/Yi.Furion.Net6/Yi.Furion.Core/Yi.Furion.Core.xml b/Yi.Furion.Net6/Yi.Furion.Core/Yi.Furion.Core.xml
index fe0b6888..ba78fd02 100644
--- a/Yi.Furion.Net6/Yi.Furion.Core/Yi.Furion.Core.xml
+++ b/Yi.Furion.Net6/Yi.Furion.Core/Yi.Furion.Core.xml
@@ -366,6 +366,70 @@
Role输入创建对象
+
+
+ 作业 Id
+
+
+
+
+ 作业组名称
+
+
+
+
+ 作业处理程序类型
+
+ 存储的是类型的 FullName
+
+
+
+ 作业处理程序类型所在程序集
+
+ 存储的是程序集 Name
+
+
+
+ 描述信息
+
+
+
+
+ 是否采用并行执行
+
+ 如果设置为 false,那么使用串行执行
+
+
+
+ 是否扫描 IJob 实现类 [Trigger] 特性触发器
+
+
+
+
+ 作业信息额外数据
+
+
+
+
+ 作业更新时间
+
+
+
+
+ 标记其他作业正在执行
+
+ 当 为 false 时有效,也就是串行执行
+
+
+
+ 作业处理程序运行时类型
+
+
+
+
+ 作业信息额外数据运行时实例
+
+
User输入创建对象
diff --git a/Yi.Furion.Net6/Yi.Furion.Web.Core/Startup.cs b/Yi.Furion.Net6/Yi.Furion.Web.Core/Startup.cs
index 207406bb..816af73d 100644
--- a/Yi.Furion.Net6/Yi.Furion.Web.Core/Startup.cs
+++ b/Yi.Furion.Net6/Yi.Furion.Web.Core/Startup.cs
@@ -36,8 +36,8 @@ public class Startup : AppStartup
services.AddSchedule(options =>
{
// 注册作业,并配置作业触发器
- // options.AddJob(Triggers.Period(10000)); // 表示每秒执行
- options.AddJob(Triggers.Cron("0 0 0,12 ? * ?",CronStringFormat.WithSeconds)); // 表示每天凌晨与12点
+ //options.AddJob(Triggers.Period(10000)); // 表示每秒执行
+ options.AddJob(Triggers.Cron("0 0 0,12 ? * ?",CronStringFormat.WithSeconds)); // 表示每天凌晨与12点
});
services.AddFileLogging("application-{0:yyyy}-{0:MM}-{0:dd}.log", options =>
{
diff --git a/Yi.RuoYi.Vue3/src/views/monitor/job/index.vue b/Yi.RuoYi.Vue3/src/views/monitor/job/index.vue
index 18c5cb12..188a9514 100644
--- a/Yi.RuoYi.Vue3/src/views/monitor/job/index.vue
+++ b/Yi.RuoYi.Vue3/src/views/monitor/job/index.vue
@@ -87,17 +87,29 @@
+
+
+
-
-
-
-
+
+
+
+
+
-
+
+
-
+
+
+
+
+
+
+
+