Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Quartz.NET implementation doesn't jive with tutorials

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...

like image 628
Michael Glass Avatar asked Jun 01 '12 00:06

Michael Glass


3 Answers

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.

like image 154
Pure.Krome Avatar answered Oct 09 '22 03:10

Pure.Krome


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

}
like image 11
Colin Avatar answered Oct 09 '22 03:10

Colin


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

like image 3
Marko Lahma Avatar answered Oct 09 '22 03:10

Marko Lahma