2012-06-01 13 views
29

starałem się wdrożyć bardzo prostą implementację Quartz.net korzystając this tutorialrealizacja Quartz.NET nie jive z samouczków

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

Problem używam do jest (na przykład) MakeHourlyTrigger nie jest dostępny w Intellisense i daje mi błąd

Quartz.TriggerUtils nie zawiera definicji "MakeHourlyTrigger".

otrzymuję błędy na typów, takich jak JobDetail:

„typu lub obszaru nazwa«JobDetail»nie można znaleźć (czy brakuje using dyrektywa lub odwołania do zestawu?)”

Może jestem zmęczony i brakuje mi czegoś głupiego i łatwego ... Mam nadzieję, że tak jest. Wszystkie przykłady, które widziałem na stronach internetowych, mówią, że powinienem używać Quartz i używać Quartz.Impl. Proszę mi powiedzieć, że po prostu brakuje mi czegoś łatwego ...

+0

Mogę pomóc w chwili, gdy się boję, ale kiedy ostatni raz patrzyłem na Quartz.NET, cała dokumentacja i przykłady * były * naprawdę strasznie nieaktualne. Powodzenia! – Coxy

+1

Ok, pobrałem źródło (pierwotnie użyłem nuget) i wygląda na to, że jest kilka przykładów. Przechodzę teraz przez nie. Byłoby miło, gdyby tutoriale online zostały zaktualizowane tak, aby odzwierciedlały wszystkie najważniejsze zmiany ... może kiedyś to zrobię. Wiesz ... między projektami. Ahem. –

Odpowiedz

33

Dokumentacja ma na celu 1.0 API. Shiz bardzo się zmieniła :(I tak, że któryś łamie.

Więc .. pomóc .. check this official migration page out. U może znaleźć miłość w środku.

+1

Istnieje co najmniej jedno literówka w przewodniku migracji: 'IntervalUnit.HOURS' powinno być' IntervalUnit.Hour'. Mam nadzieję, że samouczek zostanie zaktualizowany, aby odzwierciedlić rzeczywistość 2.x w najbliższej przyszłości ... –

11

wiem, że to nie jest właściwe miejsce. Powinienem edycji oryginalnej Wiki bla bla bla. staram się robić 31 godzin pracy, w moich godzinach wieczornych w piątek. Więc tu idzie.

Lekcja 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

jestem przyjemność poinformować, że Strona internetowa Quartz.NET została pomyślnie przeniesiona na strony GitHub. Społeczność społeczności powinna być teraz łatwiejsza do poprawienia poprawek i ulepszeń.

Tutorial jest (wreszcie) aktualizowane w celu uwzględnienia zmian 2.x:

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

witryna jest napisana w promocji cenowych i mogą być aktualizowane z wnioskami ściąganej poprzez GitHub:

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