Quartz.NET - 教程 1: 使用 Quartz

译者注:
目录在这 Quartz.NET 3.x 教程
原文在这 Lesson 1: Using Quartz

在你使用调度器之前, 你需要先实例化(能猜到是谁么?). 要实例化, 请使用 ISchedulerFactory 的实现.

译者注: 后续我们会温柔的用 来称呼 Quartz

一旦一个调度器被实例化, 她就可以被启动, 置于待机模式, 以及关闭. 请注意一旦调度器被关闭, 其不能在没有被重新实例化前重新启动. 在调度器启动之前, 或处于暂停状态时, 触发器不会触发(作业不会执行).

这里有一小段代码片段, 代码中实例化并启动了一个调度器, 并调度了一个作业来执行.

译者注: 下面这个只是代码片段/片段/片段, 运行不了的, 主要用于示例说明.

使用 Quartz.NET

// 构造一个调度器工厂
NameValueCollection props = new NameValueCollection();
props.Add(name: "quartz.serializer.type", value: "binary");

StdSchedulerFactory factory = new StdSchedulerFactory(props);

// 获取一个调度器实例
IScheduler sched = await factory.GetScheduler();
await sched.Start();
                
// 定义作业并将其绑定到我们的 HelloJob 类
IJobDetail job = JobBuilder.Create<HelloJob>()
    .WithIdentity("myJob", "group1")
    .Build();

// 触发这个作业并马上运行,之后每40秒执行一次
ITrigger trigger = TriggerBuilder.Create()
    .WithIdentity("myTrigger", "group1")
    .StartNow()
    .WithSimpleSchedule(x => x
        .WithIntervalInSeconds(40)
        .RepeatForever())
.Build();

await sched.ScheduleJob(job, trigger);                    

如你所见, 使用 Quartz.NET 相当简单. 在 [课程 2: 作业和触发器] 中我们会快速概述作业和触发器, 以便您能更全面的理解上面这个例子🌰.

posted @ 2019-03-09 16:31  taadis  阅读(...)  评论(...编辑  收藏