译者注: 原文在这 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: 作业和触发器 中我们会快速概述作业和触发器, 以便您能更全面的理解上面这个例子