c#之quartz任务调度的使用

本文介绍如何使用Quartz 3.x版本进行任务调度,包括创建ISchedulerFactory、Scheduler,启动Scheduler,创建Job任务及Trigger触发器,并通过示例代码演示如何规划执行任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

这里讲下,quartz这种任务调度程序的简单使用

这是使用的quartz的3.x 版本

2.x 版本与此稍有区别,可以在网上查看2.x版本教程

使用语言为c#

 

quartz的使用分为几个步骤

  1. 创建一个ISchedulerFactory,然后并且获取 Scheduler
  2. 启动 Scheduler
  3. 创建 job 任务
  4. 创建 trigger 触发器
  5. 使用触发器规划执行任务( Tell quartz to schedule the job using our trigger)

其中2步骤也可以放到步骤5后面 

 

另外,别忘记在nuget管理器中引入quartz

 

 

代码如下

class Program
    {
        /// <summary>
        /// 入口程序
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            Run();
            Console.ReadKey();
        }

        /// <summary>
        /// 任务调度的使用过程
        /// </summary>
        /// <returns></returns>
        public async static Task Run()
        {
            // 1.创建scheduler的引用
            ISchedulerFactory schedFact = new StdSchedulerFactory();
            IScheduler sched = await schedFact.GetScheduler();

            //2.启动 scheduler
            await sched.Start();

            // 3.创建 job
            IJobDetail job = JobBuilder.Create<SimpleJob>()
                    .WithIdentity("job1", "group1")
                    .Build();

            // 4.创建 trigger
            ITrigger trigger = TriggerBuilder.Create()
                .WithIdentity("trigger1", "group1")
                .WithSimpleSchedule(x => x.WithIntervalInSeconds(5).RepeatForever())
                .Build();

            // 5.使用trigger规划执行任务job
            await sched.ScheduleJob(job, trigger);
        }

    }
    


    /// <summary>
    /// 任务
    /// </summary>
    public class SimpleJob : IJob
    {
        public virtual Task Execute(IJobExecutionContext context)
        {
            return Console.Out.WriteLineAsync($"job工作了 在{DateTime.Now}");
        }
        
    }

 

运行程序,效果图如下:

每5秒执行一次

 

 另外,在实际项目使用中,可以进行把上面步骤拆开,封装进行使用

例如,可以把步骤1,步骤2封装到一起,即用来产生 scheduler 

把 步骤3,步骤4,步骤5 封装到一起,用来给不同的任务 scheduler(相当于注册不同的 job ,trigger)

 

另外,还有更多的quartz的用法

这里附上继续学习网址:

quartz学习

 

转载于:https://www.cnblogs.com/Vincent-yuan/p/10867277.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值