feat(新增): 将jobDetail放在触发器中
This commit is contained in:
parent
aad873a49a
commit
d66882cb0e
|
@ -6,4 +6,9 @@ public interface IJobService
|
|||
/// 开启一个简单的工作
|
||||
/// </summary>
|
||||
void StartSimpleJob();
|
||||
|
||||
/// <summary>
|
||||
/// 将jobDetail放在触发器中
|
||||
/// </summary>
|
||||
void PutJobDetail4Trigger();
|
||||
}
|
|
@ -26,7 +26,7 @@ public class JobService : IJobService
|
|||
.WithIdentity("testTrigger", "测试发出器")
|
||||
.StartNow()
|
||||
// 每隔5秒执行一次,一共重复10次
|
||||
.WithSimpleSchedule(x => x.WithIntervalInSeconds(5).WithRepeatCount(10))
|
||||
.WithSimpleSchedule(x => x.WithIntervalInSeconds(1).WithRepeatCount(10))
|
||||
.Build();
|
||||
|
||||
// 使用同步方法
|
||||
|
@ -37,4 +37,39 @@ public class JobService : IJobService
|
|||
// await _scheduler.ScheduleJob(jobDetail, trigger);
|
||||
// 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
|
||||
{
|
||||
/// <summary>
|
||||
/// 开启一个简单的工作
|
||||
/// 1. 开启一个简单的工作
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public Result<string> 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