core中使用Quartz定时服务

本文介绍了如何使用Quartz框架在项目中创建卡券生成服务,并设置定时任务,以便在卡券创建后自动执行。通过Cron_Like表达式实现定时启动,遵循领导需求并简化日常流程。

这次是项目需要当新建一个卡券后将券码生成出来并展现。工具用的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表达式来定时。虽然我还是觉得我的方法更靠谱些,但是打工人还是得听老大的。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值