2012-06-01 13 views
29

he tratado de implementar una aplicación muy sencilla usando Quartz.net this tutorialaplicación Quartz.NET hace no jive con tutoriales

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

El problema que estoy en es (por ejemplo) MakeHourlyTrigger no está disponible en el Intellisense, y me da el error

Quartz.TriggerUtils no contiene una definición para 'MakeHourlyTrigger'.

tengo errores en tipos tales como JobDetail:

"El tipo o espacio de nombres 'JobDetail' no se pudo encontrar (¿falta una directiva using o una referencia de ensamblado?)"

Tal vez estoy cansado y me estoy perdiendo algo estúpido y fácil ... Espero que ese sea el caso. Todos los ejemplos que he visto en Internets dicen que debería usar Quartz y usar Quartz.Impl. Por favor, dime que me falta algo fácil ...

+0

Puedo ayudarlo por el momento, pero la última vez que consulté Quartz.NET toda la documentación y los ejemplos * estaban * terriblemente desactualizados. ¡Buena suerte! – Coxy

+1

Ok, he descargado la fuente (originalmente había usado Nuget), y parece que hay bastantes ejemplos incluidos. Pasando por ellos ahora. Sería bueno si los tutoriales en línea se actualizaron para reflejar todos los cambios MAYORES ... tal vez lo haga algún tiempo. Ya sabes ... entre proyectos. Ejem. –

Respuesta

33

La documentación está dirigida a 1.0 API. Shiz ahora ha cambiado :(Y sí, eres quebranta.

Así que .. .. para ayudar a check this official migration page out. T podría encontrar un poco de amor en ese país.

+1

Hay al menos un error ortográfico en la guía de migración: 'IntervalUnit.HOURS' debe ser' IntervalUnit.Hour'. Con suerte, el tutorial se actualizará para reflejar la realidad de 2.x en el futuro cercano ... –

11

Sé que esto no es el lugar adecuado. Que debería editar el wiki, bla, bla, bla originales. estoy tratando de hacer 31 horas de trabajo, en mis noches, el viernes. Así que aquí va.

Lección 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

me complace anunciar que El sitio web de Quartz.NET ha sido migrado con éxito a GitHub Pages. Ahora debería ser más fácil para contribuir a la comunidad correcciones y mejoras.

El tutorial está (finalmente) al día para incluir cambios 2.x:

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

sitio está escrito en Markdown y puede actualizarse con las solicitudes de extracción a través de GitHub:

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