Quartz.NET implementation doesn't jive with tutorials

被刻印的时光 ゝ 提交于 2019-12-03 06:38:15

问题


I attempted to implement a very simple Quartz.net implementation using this tutorial

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);

The problem I am running into is (for example) MakeHourlyTrigger is not available in the Intellisense, and gives me the error

Quartz.TriggerUtils does not contain a definition for 'MakeHourlyTrigger'.

I get errors on types such as JobDetail:

"The type or namespace name 'JobDetail' could not be found (are you missing a using directive or an assembly reference?)"

Maybe I'm tired and missing something stupid and easy... I hope that's the case. All of the examples I have seen on the Internets say that I should be using Quartz and using Quartz.Impl. Please tell me that I'm just missing something easy...


回答1:


The documentation is aimed at the 1.0 API. Shiz has now changed :( And yes, they art breaketh.

So .. to help .. check this official migration page out. U might find some love in there.




回答2:


I know this isn't the right place. I should edit the original Wiki blah blah blah. I'm trying to do 31 hours of work, in my evenings, by Friday. So here goes.

Lesson 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());
        }
    }

}



回答3:


I'm pleased to announce that Quartz.NET's web site has been successfully migrated to GitHub Pages. It should be now easier for community contribute fixes and enhancements.

The tutorial is (finally) updated to include 2.x changes:

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

Site is written in Markdown and can be updated with pull requests via GitHub:

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



来源:https://stackoverflow.com/questions/10842826/quartz-net-implementation-doesnt-jive-with-tutorials

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!