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..a4565282 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,9 +36,9 @@ 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();
+ var data = _schedulerFactory.GetJobsOfModels().Skip((input.PageNum-1) * input.PageSize).Take(input.PageSize).OrderByDescending(x => x.JobDetail.UpdatedTime).ToList();
return new PagedResultDto(data.Count(), data);
}
@@ -53,7 +53,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 +122,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)
@@ -148,5 +148,16 @@ namespace Yi.Furion.Application.Rbac.Services.Impl
var result = _schedulerFactory.TryUpdateJob(schedulerBuilder, out var scheduler);
return result;
}
+
+ [HttpPost]
+ public bool RunOnce(string jobId)
+ {
+ var result = _schedulerFactory.TryGetJob(jobId, out var scheduler);
+
+ var triggerBuilder = Triggers.Period(100).SetRunOnStart(true).SetMaxNumberOfRuns(1);
+ scheduler.AddTrigger(triggerBuilder);
+ //设置启动时执行一次,然后最大只执行一次
+ return true;
+ }
}
}
diff --git a/Yi.Furion.Net6/Yi.Furion.Web.Core/Startup.cs b/Yi.Furion.Net6/Yi.Furion.Web.Core/Startup.cs
index 207406bb..2545d8c3 100644
--- a/Yi.Furion.Net6/Yi.Furion.Web.Core/Startup.cs
+++ b/Yi.Furion.Net6/Yi.Furion.Web.Core/Startup.cs
@@ -38,6 +38,7 @@ public class Startup : AppStartup
// 注册作业,并配置作业触发器
// options.AddJob(Triggers.Period(10000)); // 表示每秒执行
options.AddJob(Triggers.Cron("0 0 0,12 ? * ?",CronStringFormat.WithSeconds)); // 表示每天凌晨与12点
+ options.AddJob(Triggers.Period(1000000)); // 表示每天凌晨与12点
});
services.AddFileLogging("application-{0:yyyy}-{0:MM}-{0:dd}.log", options =>
{