2012-06-01 4 views
29

ich eine sehr einfache Quartz.net Implementierung mit this tutorialQuartz.NET Implementierung nicht jive mit Tutorials

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

Das Problem, das ich in ist (zum Beispiel) leite umzusetzen versucht MakeHourlyTrigger ist in der nicht verfügbar Intellisense, und gibt mir den Fehler

Quartz.TriggerUtils enthält keine Definition für 'MakeHourlyTrigger'.

ich Fehler auf Typen wie JobDetail:

„Der Typ oder Namespace-Name‚JobDetail‘konnte nicht gefunden werden (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis?)“

Vielleicht bin ich müde und vermisse etwas dummes und leichtes ... Ich hoffe, das ist der Fall. Alle Beispiele, die ich im Internet gesehen habe, besagen, dass ich Quartz verwenden und Quartz.Impl verwenden sollte. Bitte sagen Sie mir, dass ich gerade etwas einfach vermisse ...

+0

Ich kann im Moment helfen, fürchte ich, aber als ich zuletzt bei Quartz.NET geschaut habe, waren die gesamte Dokumentation und die Beispiele wirklich schrecklich veraltet. Viel Glück! – Coxy

+1

Ok, ich habe die Quelle heruntergeladen (ursprünglich hatte ich nuget verwendet), und es scheint, dass es einige Beispiele gibt. Ich gehe jetzt durch sie hindurch. Es wäre schön, wenn die Online-Tutorials aktualisiert würden, um alle wichtigen Änderungen zu berücksichtigen ... vielleicht werde ich das irgendwann tun. Sie wissen ... zwischen Projekten. Hm. –

Antwort

33

Die Dokumentation richtet sich an die 1.0 API. Schiz hat sich nun geändert :(Und ja, sie Kunst bricht.

Also .. helfen .. check this official migration page out. U etwas Liebe dort finden könnte.

+1

Es gibt mindestens einen Tippfehler im Migrationsleitfaden: 'IntervalUnit.HOURS' sollte' IntervalUnit.Hour' sein. Hoffentlich wird das Tutorial aktualisiert, um die Realität von 2.x in naher Zukunft zu reflektieren ... –

11

Ich weiß, dass dies nicht der richtige Ort ist. Ich sollte bearbeiten Sie die Original-bla bla bla Wiki. ich versuche, 31-Stunden-Arbeit zu tun, in meinem Abend bis freitag. So geht hier.

Lektion 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

ich bin zu verkünden uns, dass Die Website von Quartz.NET wurde erfolgreich auf GitHub Pages migriert. Es sollte jetzt einfacher sein, Community beizutragen, Korrekturen und Verbesserungen.

Das Tutorial ist (endlich) aktualisiert 2.x Änderungen umfassen:

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

Website wird in Markdown geschrieben und kann mit Pull-Anfragen über GitHub aktualisiert werden:

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