feat(新增): 设置每日时间表

This commit is contained in:
bunny 2024-08-15 16:37:31 +08:00
parent d66882cb0e
commit 7783b97141
3 changed files with 52 additions and 0 deletions

View File

@ -11,4 +11,9 @@ public interface IJobService
/// 将jobDetail放在触发器中
/// </summary>
void PutJobDetail4Trigger();
/// <summary>
/// 设置每日时间表
/// </summary>
void SetJobWithDaily();
}

View File

@ -72,4 +72,40 @@ public class JobService : IJobService
scheduler.ScheduleJob(trigger).GetAwaiter().GetResult();
scheduler.Start().GetAwaiter().GetResult();
}
/// <summary>
/// 设置每日时间表
/// </summary>
public void SetJobWithDaily()
{
var stdSchedulerFactory = new StdSchedulerFactory();
var scheduler = stdSchedulerFactory.GetScheduler().GetAwaiter().GetResult();
var jobDetail = JobBuilder.Create<SimJob>()
.UsingJobData("username", "用户名")
.UsingJobData("password", "密码")
.StoreDurably() // 设置作业为持久的
.WithIdentity("simpleJob", "简单的JOB")
.Build();
scheduler.AddJob(jobDetail,true).GetAwaiter().GetResult();
var trigger = TriggerBuilder.Create()
.ForJob(jobDetail)
.UsingJobData("trigger", "trigger值")
.WithIdentity("testTrigger", "测试发出器")
.StartNow()
// TODO StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(20, 0))触发器从每天的20:00晚上8点开始。
// TODO EndingDailyAt(TimeOfDay.HourAndMinuteOfDay(22, 0))触发器在每天的22:00晚上10点结束。
// TODO WithIntervalInSeconds(5)在开始和结束时间之间触发器将每5秒触发一次作业。
.WithDailyTimeIntervalSchedule(x => x.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(16, 0))
.EndingDailyAt(TimeOfDay.HourAndMinuteOfDay(22, 0))
.OnDaysOfTheWeek(DayOfWeek.Sunday, DayOfWeek.Monday, DayOfWeek.Thursday)
.WithIntervalInSeconds(2)
)
.Build();
scheduler.ScheduleJob(trigger).GetAwaiter().GetResult();
scheduler.Start().GetAwaiter().GetResult();
}
}

View File

@ -31,4 +31,15 @@ public class JobInitController(IJobService jobService) : ControllerBase
jobService.PutJobDetail4Trigger();
return Result<string>.Success("将jobDetail中的一些信息放在触发器中简化写法");
}
/// <summary>
/// 3. 设置每日时间表
/// </summary>
/// <returns></returns>
[HttpHead]
public Result<string> SetJobWithDaily()
{
jobService.SetJobWithDaily();
return Result<string>.Success();
}
}