using Bunny.Service.Job; using Quartz; using Quartz.Impl; namespace Bunny.Service.IService.Service; public class JobService : IJobService { /// /// 开启一个简单的工作 /// https://www.youtube.com/watch?v=CuHIScZKup8&list=PLSi1BNmQ61ZohCcl43UdAksg7X3_TSmly&index=6 /// public void StartSimpleJob() { var schedulerFactory = new StdSchedulerFactory(); // TODO 如果使用异步,必须使用await 和 async // var scheduler = schedulerFactory.GetScheduler(); var scheduler = schedulerFactory.GetScheduler().GetAwaiter().GetResult(); var jobDetail = JobBuilder.Create() .UsingJobData("username", "用户名") .UsingJobData("password", "密码") .WithIdentity("simpleJob", "简单的JOB") .Build(); var trigger = TriggerBuilder.Create() .WithIdentity("testTrigger", "测试发出器") .StartNow() // 每隔5秒执行一次,一共重复10次 .WithSimpleSchedule(x => x.WithIntervalInSeconds(5).WithRepeatCount(10)) .Build(); // 使用同步方法 scheduler.ScheduleJob(jobDetail, trigger).GetAwaiter().GetResult(); scheduler.Start().GetAwaiter().GetResult(); // TODO 使用异步 // await _scheduler.ScheduleJob(jobDetail, trigger); // await _scheduler.Start(); } }