zoukankan      html  css  js  c++  java
  • quartz简单使用

    using Quartz;
    using Quartz.Impl;
    using System;
    using System.Threading.Tasks;
    
    namespace quartzTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                ///一般定时任务
                Run();
                //传参方式循环
                Run3();
                Console.ReadKey();
            }
    
    
            public async static Task Run3()
            {
                // 1.创建scheduler的引用
                ISchedulerFactory schedFact = new StdSchedulerFactory();
                IScheduler sched = await schedFact.GetScheduler();
    
                //2.启动 scheduler
                await sched.Start();
            
                ///传参数方式
                IJobDetail job = JobBuilder.Create<DumbJob>()
                                 .WithIdentity("myJob", "group1") // name "myJob", group "group1"
                                 .UsingJobData("jobSays", "Hello World!")
                                 .UsingJobData("myFloatValue", 3.141f)
                                 .Build();
    
                ITrigger trigger = TriggerBuilder.Create()
                              .WithIdentity("myTrigger", "group1")
                              .StartNow()
                              .WithSimpleSchedule(x => x
                                  .WithIntervalInSeconds(3)
                                  .RepeatForever())
                              .Build();
                await sched.ScheduleJob(job, trigger);
            }
    
    
    
    
            /// <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}");
            }
    
        }
        public class DumbJob : IJob
        {
            public async Task Execute(IJobExecutionContext context)
            {
                JobKey key = context.JobDetail.Key;
    
                JobDataMap dataMap = context.JobDetail.JobDataMap;
    
                string jobSays = dataMap.GetString("jobSays");
                float myFloatValue = dataMap.GetFloat("myFloatValue");
    
                await Console.Error.WriteLineAsync("Instance " + key + " of DumbJob says: " + jobSays + ", and val is: " + myFloatValue);
            }
        }
    }

    至于定时,周期的方式都很简单,百度下都有了

  • 相关阅读:
    质心坐标(barycentric coordinates)及其应用
    用表存储代替递归算法
    Lua学习之加载其他lua文件
    Mac 端配置 Lua 环境
    聊聊二手房交易遇到的恶心事
    Mac安装Python3后,如何将默认执行的Python2改为Pyhton3
    Mac平台下部署UE4工程到iOS设备的流程
    计算椭圆运动轨迹的算法
    OpenGL中的渲染方式—— GL_TRIANGLE_STRIP
    XDRender_ShaderMode_StandardPBR 间接光照(2)-镜面反射部分(1)
  • 原文地址:https://www.cnblogs.com/wangchuang/p/14652171.html
Copyright © 2011-2022 走看看