feat(新增): 将jobDetail放在触发器中
This commit is contained in:
parent
aad873a49a
commit
d66882cb0e
|
@ -6,4 +6,9 @@ public interface IJobService
|
||||||
/// 开启一个简单的工作
|
/// 开启一个简单的工作
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void StartSimpleJob();
|
void StartSimpleJob();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 将jobDetail放在触发器中
|
||||||
|
/// </summary>
|
||||||
|
void PutJobDetail4Trigger();
|
||||||
}
|
}
|
|
@ -26,7 +26,7 @@ public class JobService : IJobService
|
||||||
.WithIdentity("testTrigger", "测试发出器")
|
.WithIdentity("testTrigger", "测试发出器")
|
||||||
.StartNow()
|
.StartNow()
|
||||||
// 每隔5秒执行一次,一共重复10次
|
// 每隔5秒执行一次,一共重复10次
|
||||||
.WithSimpleSchedule(x => x.WithIntervalInSeconds(5).WithRepeatCount(10))
|
.WithSimpleSchedule(x => x.WithIntervalInSeconds(1).WithRepeatCount(10))
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
// 使用同步方法
|
// 使用同步方法
|
||||||
|
@ -37,4 +37,39 @@ public class JobService : IJobService
|
||||||
// await _scheduler.ScheduleJob(jobDetail, trigger);
|
// await _scheduler.ScheduleJob(jobDetail, trigger);
|
||||||
// await _scheduler.Start();
|
// await _scheduler.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 将jobDetail放在触发器中
|
||||||
|
/// </summary>
|
||||||
|
public void PutJobDetail4Trigger()
|
||||||
|
{
|
||||||
|
var stdSchedulerFactory = new StdSchedulerFactory();
|
||||||
|
var scheduler = stdSchedulerFactory.GetScheduler().GetAwaiter().GetResult();
|
||||||
|
|
||||||
|
var jobDetail = JobBuilder.Create<SimJob>()
|
||||||
|
.UsingJobData("username", "用户名")
|
||||||
|
.UsingJobData("password", "密码")
|
||||||
|
// TODO 如果不设置持久的会报错;
|
||||||
|
// TODO Jobs added with no trigger must be durable.Quartz.SchedulerException: Jobs added with no trigger must be durable.
|
||||||
|
.StoreDurably() // 设置作业为持久的
|
||||||
|
.WithIdentity("simpleJob", "简单的JOB")
|
||||||
|
.Build();
|
||||||
|
|
||||||
|
// 将作业添加到工作中
|
||||||
|
scheduler.AddJob(jobDetail, true).GetAwaiter().GetResult();
|
||||||
|
|
||||||
|
var trigger = TriggerBuilder.Create()
|
||||||
|
.ForJob(jobDetail)
|
||||||
|
.UsingJobData("trigger", "trigger值")
|
||||||
|
.WithIdentity("testTrigger", "测试发出器")
|
||||||
|
.StartNow()
|
||||||
|
// TODO 设置调度时间单位
|
||||||
|
// .WithSimpleSchedule(x => x.WithIntervalInSeconds(1).WithRepeatCount(10))
|
||||||
|
// TODO 自定义调度时间单位
|
||||||
|
.WithSimpleSchedule(x => x.WithInterval(TimeSpan.FromMinutes(1)).WithRepeatCount(10))
|
||||||
|
.Build();
|
||||||
|
|
||||||
|
scheduler.ScheduleJob(trigger).GetAwaiter().GetResult();
|
||||||
|
scheduler.Start().GetAwaiter().GetResult();
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -11,13 +11,24 @@ namespace Bunny.WebApi.Controllers;
|
||||||
public class JobInitController(IJobService jobService) : ControllerBase
|
public class JobInitController(IJobService jobService) : ControllerBase
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 开启一个简单的工作
|
/// 1. 开启一个简单的工作
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public Result<string> StartSimpleJob()
|
public Result<string> StartSimpleJob()
|
||||||
{
|
{
|
||||||
jobService.StartSimpleJob();
|
jobService.StartSimpleJob();
|
||||||
return Result<string>.Success();
|
return Result<string>.Success("将名称生成放在jobDetail中,可以再运行时获取到");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 2. 将jobDetail放在触发器中
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
public Result<string> PutJobDetail4Trigger()
|
||||||
|
{
|
||||||
|
jobService.PutJobDetail4Trigger();
|
||||||
|
return Result<string>.Success("将jobDetail中的一些信息放在触发器中,简化写法");
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue