zoukankan      html  css  js  c++  java
  • Quartz.Net

    Lesson 1: 使用Quartz

    本系列文章是官方3.x文档的翻译,原文地址:https://www.quartz-scheduler.net/documentation/quartz-3.x/tutorial/index.html
    目录:
    Lesson 1: 使用Quartz
    Lesson 2: 任务和触发器

    调度器(scheduler)必须在实例化之后才能使用(谁能想到呢?)。你可以通过一个ISchedulerFactory接口的实例来实现它。

    实例化调度器(scheduler)后,可以启动、处于待机模式或者关闭。注意,一个调度器(scheduler)一旦被关闭,它必须被重新实例化才可以再次启动。直到调度器(scheduler)启动,触发器(Triggers)才会被触发(执行任务(job)),但处于暂停模式的触发器(trigger)不会被触发。

    这里有一段简单的代码,实例化了一个调度器(scheduler)并启动了它,还调度了一个任务(job)去执行。

    使用 Quartz.NET

      // construct a scheduler factory 构造一个scheduler工厂
        NameValueCollection props = new NameValueCollection
        {
            { "quartz.serializer.type", "binary" }
        };
        StdSchedulerFactory factory = new StdSchedulerFactory(props);
        
        // get a scheduler 获取一个scheduler
        IScheduler sched = await schedFact.GetScheduler();
        await sched.Start();
        
    	// define the job and tie it to our HelloJob class 定义一个job,与HelloJob类关联
    	IJobDetail job = JobBuilder.Create<HelloJob>()
    		.WithIdentity("myJob", "group1")
    		.Build();
    
    	// Trigger the job to run now, and then every 40 seconds 触发任务马上执行,并且每40秒执行一次
    	ITrigger trigger = TriggerBuilder.Create()
          .WithIdentity("myTrigger", "group1")
          .StartNow()
          .WithSimpleSchedule(x => x
              .WithIntervalInSeconds(40)
              .RepeatForever())
          .Build();
    	  
        await sched.ScheduleJob(job, trigger);
    

    如你所见,使用 Quartz.NET 非常简单。在 Lesson 2 中,我们会给出一个关于任务(Jobs)和触发器(Triggers)的快速概览,方便你更好地理解这个例子。

  • 相关阅读:
    yield return 和 Func
    匿名类型与扩展方法
    对象初始化器和集合初始化器
    VSCode编辑器使用技巧:快捷输入HTML代码
    CSS清除浮动
    置换元素与非置换元素
    浏览器五大内核及代表
    IE过滤器
    写个 Hello world 前端从入坑到弃坑系列教程(1)
    测试一下
  • 原文地址:https://www.cnblogs.com/David-Huang/p/9269291.html
Copyright © 2011-2022 走看看