这次是项目需要当新建一个卡券后将券码生成出来并展现。工具用的Quartz,

先把作业调度的方法写好,二话不说上代码
public static void CreateJobList(List<Entity.QuartzJob> jobList)
{
//1.首先创建一个作业调度池
ISchedulerFactory schedf = new StdSchedulerFactory();
IScheduler sched = schedf.GetScheduler().Result;
//将配置的多任务全部放入调度池
jobList.Where(o => o.Status).ToList().ForEach(job =>
{
//2.创建出来一个具体的作业
//创建一个Job来执行特定的任务
IJobDetail jobDetail = new JobDetailImpl(job.ClassName.Name, job.ClassName);
//开始时间
DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(job.BeginTime, 0);
//3.创建并配置一个触发器
var trigger = TriggerBuilder.Create().StartAt(startTime).WithCronSchedule(job.Cron_Like);
//如果结束时间比当前时间晚,则加载结束时间
if (job.EndTime > DateTime.Now) { trigger = trigger.EndAt(DateBuilder.NextGivenSecondDate(job.EndTime, 3)); }
//4.加入作业调度池中
sched.ScheduleJob(jobDetail, trigger.Build());
});
//5.开始运行
sched.Start();
}
之后新建一个类文件,将你所需要写的业务放进去, 
最后将你刚才写的的业务放到参数中去然后调用作业调度方法就行了 ,简简单单,所以也不做啥过多的叙述,只是单纯的记录一次自己做的这个功能。

写完之后直接找到写服务的项目的根目录下cmd,输入命令符dotnet publish -c Release -r win-x64生成就行,这个命令符的地址可以自行更改。
对了,这个服务原本我想写在生成卡券的接口之后,当生成卡券之后直接启动一次服务,可是老大说要定时,所以用Cron_Like表达式来定时。虽然我还是觉得我的方法更靠谱些,但是打工人还是得听老大的。
本文介绍了如何使用Quartz框架在项目中创建卡券生成服务,并设置定时任务,以便在卡券创建后自动执行。通过Cron_Like表达式实现定时启动,遵循领导需求并简化日常流程。
3287

被折叠的 条评论
为什么被折叠?



