【问题标题】:Quartz.NET implementation doesn't jive with tutorialsQuartz.NET 实现与教程不符
【发布时间】:2012-06-06 06:07:00
【问题描述】:

我尝试使用this tutorial 实现一个非常简单的 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。请告诉我,我只是错过了一些简单的东西......

【问题讨论】:

  • 恐怕我现在可以提供帮助,但是当我上次查看 Quartz.NET 时,所有文档和示例确实已经过时了。祝你好运!
  • 好的,我已经下载了源码(原来我用的是nuget),好像里面有不少例子。现在通过它们。如果更新在线教程以反映所有主要更改,那就太好了……也许我会在一段时间内这样做。你知道......项目之间。咳咳。

标签: c# types quartz.net


【解决方案1】:

我知道这不是正确的地方。我应该编辑原始的 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());
        }
    }

}

【讨论】:

    【解决方案2】:

    我很高兴地宣布 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

    【讨论】:

      【解决方案3】:

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

      所以..来帮助..check this official migration page out。你可能会在那里找到一些爱。

      【讨论】:

      • 迁移指南中至少有一个错字:IntervalUnit.HOURS 应该是IntervalUnit.Hour。希望该教程将在不久的将来更新以反映 2.x 的现实......
      猜你喜欢
      • 1970-01-01
      • 2012-05-03
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 2019-09-07
      • 1970-01-01
      相关资源
      最近更新 更多