c# - net - task execute ijobexecutioncontext context
La implementación de Quartz.NET no concuerda con los tutoriales. (3)
La documentación está dirigida a la API 1.0. Shiz ahora ha cambiado :( Y sí, ellos están en paz.
Así que ... para ayudar ... mira esta página oficial de migración . U podría encontrar un poco de amor allí.
Intenté implementar una implementación muy simple de Quartz.net usando este 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);
El problema que estoy encontrando es (por ejemplo) MakeHourlyTrigger
no está disponible en el Intellisense, y me da el error
Quartz.TriggerUtils no contiene una definición para ''MakeHourly Trigger''.
Recibo errores en tipos como JobDetail
:
"No se pudo encontrar el tipo o el nombre de espacio de nombres ''JobDetail'' (¿falta una directiva de uso o una referencia de ensamblado?)"
Tal vez esté cansado y me esté perdiendo algo estúpido y fácil ... Espero que ese sea el caso. Todos los ejemplos que he visto en Internet indican que debería usar Quartz y usar Quartz.Impl. Por favor, dime que me estoy perdiendo algo fácil ...
Me complace anunciar que el sitio web de Quartz.NET se ha migrado con éxito a GitHub Pages. Ahora debería ser más fácil para la comunidad aportar arreglos y mejoras.
El tutorial se actualiza (finalmente) para incluir cambios 2.x:
http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/index.html
El sitio está escrito en Markdown y se puede actualizar con solicitudes de extracción a través de GitHub:
Sé que este no es el lugar correcto. Debería editar el Wiki original bla bla bla. Estoy tratando de hacer 31 horas de trabajo, en mis tardes, para 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());
}
}
}