2012-06-01 2 views
29

내가 this tutorialQuartz.NET 구현

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

내가으로 실행하고 문제는 MakeHourlyTrigger가에서 사용할 수 없습니다 (예를 들어)이다 사용하여 매우 간단한 Quartz.net 구현을 구현하는 시도 튜토리얼하지 흔들 않습니다 Intellisense에서 오류가 발생했습니다.

Quartz.TriggerUtils에는 'MakeHourlyTrigger'에 대한 정의가 없습니다.

내가 같은 JobDetail 같은 유형의 오류를 얻을 :

"형식 또는 네임 스페이스 이름 '만약 JobDetail은'을 (를) 찾을 수 없습니다 (당신은 using 지시문 또는 어셈블리 참조가?)"

어쩌면 나는 피곤하고 어리 석고 쉬운 것을 놓친 것일 수 있습니다. Internets에서 본 모든 예제는 내가 Quartz를 사용해야하고 Quartz.Impl을 사용해야한다고 말한다. 제발 쉽게 뭔가를 놓치고 있다고 말해주세요.

+0

튜토리얼은 2.X 변경 사항을 포함하도록 업데이트 (마지막으로)입니다 내가 두려워하는 순간을 도울 수 있지만, Quartz.NET을 마지막으로 살펴볼 때 모든 문서와 예제는 참으로 오래되었습니다. 행운을 빕니다! – Coxy

+1

좋아요, 원본 (원래는 nuget을 사용 했었습니다)을 다운로드했으며 꽤 많은 예제가 포함되어있는 것 같습니다. 지금 그들을 통해. 온라인 자습서가 모든 주요 변경 사항을 반영하도록 업데이트되면 좋을 것입니다. 아마도 언젠가는 그렇게 할 것입니다. 알다시피 ... 프로젝트들 사이. 헴. –

답변

33

설명서는 1.0 API를 대상으로합니다. 시즈는 지금 변경 :(그리고 네, 그들은 예술 breaketh.

그래서 .. 도움이 .. check this official migration page out. U 거기에 약간의 사랑을 찾을 수 있습니다.

+1

마이그레이션 가이드에는 적어도 하나의 오타가 있습니다. 'IntervalUnit.HOURS'는'IntervalUnit.Hour'이어야합니다. 이 자습서는 가까운 장래에 2.x의 현실을 반영하여 업데이트 될 것입니다. –

11

난이. 내가해야 올바른 장소 아니라는 것을 알고 원래 위키 ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ를 편집 할 수 있습니다. 내 저녁, 일 31 시간 할 노력하고있어, 금요일까지. 그래서 여기에 표시됩니다.

레슨 나는 것을 발표하게 된 것을 기쁘게 해요 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()); 
     } 
    } 

}