2010-08-17 5 views
0

이 링크는 Quartz.net에 대한 작업 데이터 맵 정보를 읽을 수있는 추상 기본 클래스를 생성하고 각 작업이이 기본 클래스에서 파생된다는 것을 제안한다. 내가 어떻게 기본 클래스에서 작업 정보를 검색하고이 파생 클래스에 메소드를 실행 호출 확실하지이기 때문에quartz.net 추상 기본 클래스

http://quartznet.sourceforge.net/faq.html#howtochainjobs

은 누군가가 나에게이 기본 클래스의 샘플을 제공 할 수 있습니까? 추상 기본 클래스 만들기 Pratik

답변

0

그냥 Quartz.NET 문서에 의해 제안하고, 작업 체인을 구현하기위한 요구 사항은 아닙니다. 당신이 체인 작업을하려면 기본적으로 그들이 것을 제안하는 "직업이를"-> "BJob"-> "CJob는"이 라인을 따라 뭔가를 할 것이다 :

  1. 하는 추상 클래스 "ChainBaseJob"를 만듭니다.

  2. 작업 클래스 (AJob 및 BJob 유형 모두)가 ChainBaseJob에서 상속됩니다.

  3. ChainBaseJob 같은 방법의 일종 포함됩니다 : 작업의 이름 (석영 작업 이름을 의미)을 반환

string GetNextJobInChain() 
.... 이 방법을 사용하는 방법에는 여러 가지가 있지만 문서에서는 TriggerListener가 완료된 작업 ("Ajob"이라고 가정 해 봅시다)이 ChainBaseJob에서 상속되는지 확인하기 위해 작업 완료 메소드를 확인하는 것이 좋습니다. 그럴 경우에는 캐스트하고 GetNextJobInChain을 호출하고 메서드에서 반환 한 이름을 사용하여 AJob 완료시 스케줄러를 호출합니다. 모든 것이 올바르게 구현되면 TriggerListener는 AJob이 완료된 후에 BJob을 실행하는 것을 알게됩니다.

행운을 빈다.

+0

설명해 주셔서 감사합니다. 이 기본 클래스를 추상적으로 만들면 기본 클래스의 작업에 대한 작업 데이터 맵을 어떻게 읽을 수 있습니까? 문제는 이메일 주소, 사용자 ID와 같은 업무 세부 사항을 가지고 있기 때문에 기본 클래스 속성에서이 값을 읽고 모든 파생 클래스에서이 코드를 반복 할 필요가 없다는 것입니다. 비 기본 클래스의 기본 클래스를 만든 경우 파생 클래스의 생성자에서 기본 클래스의 생성자를 호출하고 속성을 읽을 수 있습니다. 기본 클래스가 추상 클래스 인 경우 어떻게 수행 할 수 있는지 배우고 싶습니다. –

+0

여기 내가 어떻게 그랬어. 공개 추상 클래스 QuartzJobBase : IJob { public int A {get; 세트; } public void Execute (JobExecutionContext context) { JobDataMap dataMap = context.JobDetail.JobDataMap; A = dataMap.GetInt ("a"); ExecuteInternal (컨텍스트); } public abstract void ExecuteInternal (JobExecutionContext context);} } 각 작업의 파생 클래스에서 ExecuteInternal 메서드를 재정의합니다. –