2024-08-15 22:55:32 +08:00
|
|
|
|
using Microsoft.AspNetCore.Builder;
|
|
|
|
|
using Quartz;
|
|
|
|
|
using Quartz.Impl;
|
|
|
|
|
|
|
|
|
|
namespace Bunny.Service.Job.JobService;
|
|
|
|
|
|
|
|
|
|
public static class CronJobService
|
|
|
|
|
{
|
|
|
|
|
public static void AddCronJobService(this WebApplicationBuilder builder)
|
|
|
|
|
{
|
|
|
|
|
var stdSchedulerFactory = new StdSchedulerFactory();
|
|
|
|
|
var scheduler = stdSchedulerFactory.GetScheduler().GetAwaiter().GetResult();
|
|
|
|
|
|
2024-08-20 16:21:03 +08:00
|
|
|
|
var jobDetail = JobBuilder.Create<CronJob>()
|
2024-08-15 22:55:32 +08:00
|
|
|
|
.UsingJobData("username", "用户名")
|
|
|
|
|
.UsingJobData("password", "密码")
|
2024-08-20 16:21:03 +08:00
|
|
|
|
.UsingJobData("count", 1)
|
2024-08-15 22:55:32 +08:00
|
|
|
|
.StoreDurably() // 设置作业为持久的
|
|
|
|
|
.WithIdentity("simpleJob", "简单的JOB")
|
|
|
|
|
.Build();
|
|
|
|
|
|
|
|
|
|
scheduler.AddJob(jobDetail, true).GetAwaiter().GetResult();
|
|
|
|
|
|
|
|
|
|
var trigger = TriggerBuilder.Create()
|
|
|
|
|
.ForJob(jobDetail)
|
|
|
|
|
.UsingJobData("trigger", "trigger值")
|
2024-08-20 16:21:03 +08:00
|
|
|
|
.UsingJobData("triggerCount", 1)
|
2024-08-21 16:48:58 +08:00
|
|
|
|
.WithIdentity("cronTrigger", "测试发出器")
|
2024-08-15 22:55:32 +08:00
|
|
|
|
.StartNow()
|
2024-08-21 16:48:58 +08:00
|
|
|
|
.WithCronSchedule("0/1 * * * * ?")
|
2024-08-15 22:55:32 +08:00
|
|
|
|
.Build();
|
|
|
|
|
|
|
|
|
|
scheduler.ScheduleJob(trigger).GetAwaiter().GetResult();
|
|
|
|
|
scheduler.Start().GetAwaiter().GetResult();
|
|
|
|
|
}
|
|
|
|
|
}
|