29

我尝试使用本教程实现一个非常简单的 Quartz.net 实现

using Quartz;
using Quartz.Impl;

// construct a scheduler factory
ISchedulerFactory schedFact = new StdSchedulerFactory();

// get a scheduler
IScheduler sched = schedFact.GetScheduler();
sched.Start();

// construct job info
JobDetail jobDetail = new JobDetail("myJob", null, typeof(HelloJob));
// fire every hour
Trigger trigger = TriggerUtils.MakeHourlyTrigger();
// start on the next even hour
trigger.StartTimeUtc = TriggerUtils.GetEvenHourDate(DateTime.UtcNow);  
trigger.Name = "myTrigger";
sched.ScheduleJob(jobDetail, trigger);

我遇到的问题是(例如)MakeHourlyTrigger在 Intellisense 中不可用,并给了我错误

Quartz.TriggerUtils 不包含“MakeHourlyTrigger”的定义。

我收到以下类型的错误JobDetail

“找不到类型或命名空间名称‘JobDetail’(您是否缺少 using 指令或程序集引用?)”

也许我累了,错过了一些愚蠢而容易的事情……我希望是这样。我在 Internet 上看到的所有示例都说我应该使用 Quartz 并使用 Quartz.Impl。请告诉我,我只是错过了一些简单的东西......

4

3 回答 3

33

该文档针对 1.0 API。Shiz 现在变了 :( 是的,他们的艺术破灭了。

所以..帮助..查看这个官方迁移页面。你可能会在那里找到一些爱。

于 2012-06-04T06:04:33.687 回答
11

我知道这不是正确的地方。我应该编辑原始的 Wiki blah blah blah。我正努力在周五的晚上做 31 个小时的工作。所以这里。

第 1 课

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Quartz;
using Quartz.Impl;

namespace QuartzNetTest
{
    class Program
    {
        static void Main(string[] args)
        {
            // construct a scheduler factory
            ISchedulerFactory schedFact = new StdSchedulerFactory();

            // get a scheduler
            IScheduler sched = schedFact.GetScheduler();
            sched.Start();

            // construct job info
            IJobDetail jobDetail = JobBuilder.Create<HelloJob>()
                .WithIdentity("myJob")
                .Build();
            ITrigger trigger = TriggerBuilder.Create()
                .WithIdentity("myTrigger")
                // fire every hour
                .WithSimpleSchedule(x => x.WithIntervalInHours(1).RepeatForever())
                // start on the next even hour
                .StartAt(DateBuilder.FutureDate(1, IntervalUnit.Hour))
                .Build();

            sched.ScheduleJob(jobDetail, trigger);
        }
    }

    class HelloJob : Quartz.IJob
    {
        public void Execute(IJobExecutionContext context)
        {
            Debug.WriteLine("Hello at " + DateTime.Now.ToString());
        }
    }

}
于 2013-10-02T02:40:40.570 回答
3

我很高兴地宣布 Quartz.NET 的网站已成功迁移到 GitHub Pages。现在应该更容易让社区贡献修复和增强功能。

本教程(最终)更新为包括 2.x 更改:

http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/index.html

网站是用 Markdown 编写的,可以通过 GitHub 使用拉取请求进行更新:

https://github.com/quartznet/quartznet/tree/gh-pages

于 2014-01-07T19:22:30.847 回答