前言  

  通过昨天的努力终于算是了解Quartz这个定时器的简单使用,为了更深一步的了解和基于以后希望在项目中能使用他。所有我对他做了一下简单的封装操作,便于以后从新建立新工作和触发器,也方便写的代码不是那么的杂乱无章,所有就使用接口的方式进行了封装调用,算是个工厂模式的运用吧。哈哈。

  接口类(IExample):

 废话就不多说了,想要实现简单就要有个统一的访问接口,然后让所有的任务去实现统一接口,这样我们只需要调用统一接口就知道了任务所包含的所有方法,管理也方便管理,添加任务只需要实现接口方法就可以了。听起来很单简哪。因为我是实现简单的例子所有我就实现了启动任务,返回当前调度器,暂停,修改四个方法:

public interface IExample
    {
        /// <summary>
        /// 启动当前任务
        /// </summary>
        /// <returns></returns>
        Task Run();
        /// <summary>
        /// 返回当前调度器
        /// </summary>
        /// <returns></returns>
        IScheduler GetScheduler();
        /// <summary>
        /// 暂停当前任务
        /// </summary>
        void Shutdown();
        /// <summary>
        /// 修改当前任务时间触发
        /// </summary>
        void ModiyTime();


    }

任务的继承:

还记得上一篇文章中我们的SimpleExample类吗?下面我们就首先让他继承IExample接口类:

    public class SimpleExample : BaseExample, IExample
    {
        #region 0.创建调度器
        public static ISchedulerFactory sf = new StdSchedulerFactory();
        public async Task<IScheduler> Ceart()
        {
            return await sf.GetScheduler();
        }
        #endregion
        public virtual async Task Run()
        {
            sched = await Ceart();
            //创建任务
            IJobDetail job = JobBuilder.Create<HelloJob>()
               .WithIdentity("helloJob", "group1")
               .Build();
            //创建触发器
            // DateTimeOffset runTime = DateBuilder.EvenMinuteDate(DateTimeOffset.UtcNow);//定义触发规则
            ITrigger trigger = TriggerBuilder.Create()
                .WithIdentity("trgTest", "group1")
                 // .StartAt(runTime)
                 .WithCronSchedule("0/5 * * * * ?")     //5秒执行一次
                .Build();
            //将任务与触发器添加到调度器中
            await sched.ScheduleJob(job, trigger);
            //启动任务
            await sched.Start();
        }

    }
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2023-02-16
  • 2021-05-30
  • 2022-01-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-19
  • 2022-12-23
  • 2022-01-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案