• Quartz初体验


    Quartz用于定时任务。当我们想周期性的执行某一个任务的时候,使用Quartz就会比较便捷

    首先需要引用Quartz

    首先声明任务管理类。里面包含了时间轴,作业(做什么任务)以及实践策略(周期次数等)

    public async static Task Init()
            {
                #region  创建单元(时间轴)
                StdSchedulerFactory factory = new StdSchedulerFactory();
                IScheduler scheduler=await factory.GetScheduler();
                await scheduler.Start();
                #endregion
    
                #region 生成作业描述(做什么)
                IJobDetail job=JobBuilder.Create<SendMessageJob>()
                    .WithIdentity("sendMessageJob", "group1")   //分组
                    .WithDescription("this is message job")      //作业描述
                    .Build();
                #endregion
    
                #region 实践策略(重复间隔、次数)
                ITrigger trigger=TriggerBuilder.Create()
                    .WithIdentity("sendMessageJob", "group1")  //分组
                    // .StartNow()   //马上执行一次
                    .WithSimpleSchedule(w => w.WithIntervalInSeconds(5).WithRepeatCount(3))   //每5秒重复一次。最多重复4次。想要一直执行的话,使用RepeatForever()
                    .Build();
                #endregion 
    
                //将时间策略和作业承载到单元上
                await scheduler.ScheduleJob(job, trigger);
            }

    其中SendMessageJob是我们自定义的任务,也就是我们周期性执行的行为。它需要继承于IJob接口

    public class SendMessageJob : IJob
        {
            /// <summary>
            /// 当前Task内部需要执行的任务
            /// </summary>
            /// <param name="context"></param>
            /// <returns></returns>
            public async Task Execute(IJobExecutionContext context)
            {
                await Task.Run(() =>
                {
                    Console.WriteLine("*******************************");
                    Console.WriteLine($"起床了!{DateTime.Now}");
                    Console.WriteLine("*******************************");
                    Console.WriteLine();
                });
            }
        }

    最后进行任务调用

    DispatchingManager.Init().GetAwaiter().GetResult();
    记录编程的点滴,体会学习的乐趣
  • 相关阅读:
    【转载】关于sql的执行计划(推荐详细) 天高地厚
    填充因子 天高地厚
    【转载】基于Windows下的Web性能测试和压力测试 天高地厚
    [转]SQL Server 2008存储结构之GAM、SGAM 天高地厚
    用sp_change_users_login消除Sql Server的孤立用户
    定义类成员
    个人JS脚本验证大全[转]
    网页居中
    转 优先队列 的使用
    java BigInteger
  • 原文地址:https://www.cnblogs.com/AduBlog/p/14783229.html
Copyright © 2020-2023  润新知