Quartz.Net - Lesson 1: 使用Quartz

Lesson 1: 使用Quartz

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

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

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

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

使用 Quartz.NET.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)的快速概览,方便你更好地理解这个例子。翻译

相关文章
相关标签/搜索