2012-04-18 2 views
1

내 사이트 (SP2010)에서 SPSite.AddWorkItem 메서드를 통해 큐에 작업 항목을 추가하는 트리거를 만들었습니다. 이것은 ScheduledWorkItems 테이블이 올바른 데이터로 채워지므로 잘하는 것 같습니다. 시간은 UTC로 설정되며 현재 또는 과거 시간입니다. ID는 모두 OK로 설정됩니다. 그래서 테이블에는 모든 올바른 데이터가 있습니다.작업 항목 타이머 작업이 실행되지 않음

그러나 올바른 ID로 SPWorkItemJobDefinition에서 파생 된 사용자 지정 만든 작업 항목 프로세서는 절대로 실행되지 않습니다. 작업 항목을 추가하는 AppPool 사용자는 팜 관리자이기도합니다. 이 프로세스와 관련된 이벤트 로그 또는 공유 지점 로그 파일에는 항목이 없으므로 트리거되지 않습니다.

작업 항목 작업을 성공적으로 배포하고 실행하기위한 전제 조건이 있습니까?

+0

인가 작업 항목 작업이 예약 되었습니까? – Stefan

+0

Central Admin에 표시해야합니까? 나는 Scheduled Jobs를 보았고 그것은 비어 있습니다. Timer Job Definitions (타이머 작업 정의)에서, 그것은 언급되지 않았습니다. –

+0

대기중인 예약 된 작업은 비어 있지 않지만이 정의는 나열되지 않습니다. –

답변

1

작업 항목 작업 정의에 대해 실행중인 작업 인스턴스를 작성해야합니다. 작업 항목 작업은 다른 작업으로 스케줄됩니다. SPWorkItemJobDefinition Class :

작업 항목 타이머 작업의 정의를 파생시키는 기본 클래스로 사용하십시오. 이 클래스는 작업 항목 (SPWorkItem 인스턴스)을 처리하기 위해 타이머 작업 (SPTimerService)과 함께 작동합니다. [...] 이 클래스는 SPWorkItem 및 SPWorkItemCollection 클래스와 긴밀하게 작동합니다. 처리 대기열에 작업 항목을 추가하려면 SPSite 개체에 액세스 할 수있는 컬렉션 클래스를 사용해야합니다. 작업 항목 타이머 작업이 실행되면은, [...]

나는 기능 이벤트 수신기를 만들고 "이벤트"활성화 된 기능으로 작업 인스턴스를 생성하는 것이 좋습니다

가 :

SPWebApplication webApp = // ..; 
SomeWorkItemJob = new SomeWorkItemJob("TheName", webApp); 
job.Schedule = new SPMinuteSchedule { Interval = 2}; // every two minutes 
job.Update(false); 
관련 문제