2009-08-21 3 views
2

WSS 3.0에서 타이머 작업을 만들려고합니다. 내 타이머 작업 SPWeb 다음 SPWeb SPDebumentLibrary 및 SPDocumentLibrary (또는 아마도 그림 라이브러리) 모든 XML 또는 database.After 저장된 GUID를 사용하여 개체를 만들 것입니다 일부 타사 응용 프로그램에서 문서 라이브러리에있는 문서 및 그런 다음 해당 문서를 삭제하십시오.SharePoint : Timerjobs 잠금 유형

내 질문은 : 내 SPJobLockType 'None'또는 'Job'또는 'ContentDatabase'가 이상적으로 있어야하는 항목은 무엇입니까 ?? 다음은 타이머 작업에 관한 기사를 읽은 후에 저의 이해입니다. 내가

  1. 내가 '없음'을 사용하지 않는 경우

    , 그럼 내 일이 팜의 각 서버에서 실행됩니다 SharePoint에 아주 새로운 오전으로 내가 어떤 장소에서 잘못 생각하는 경우 제발 올바른. 나는 정말로 그것을 필요로합니까? 내 직업은 단지 문서를 수정/삭제하기 때문에 (나는 타이머 작업을 통해서만 콘텐츠 데이터베이스를 수정하고 있습니다. 내가 틀렸다면 수정하십시오).

  2. 잠금 유형 '작업'을 사용하는 경우 내 작업은 작업 생성 코드가 실행되는 서버에서만 실행됩니다.하지만 내 요구 사항을 충족 할 수 있습니다 (하지만 그렇게 생각합니다. 잘못이다). 내가 ContentDatabase LockType..It에 대한 this 기사 겪었

  3. 짧은

, 그것은 하나 개의 서버를 실행하는 것을 의미하는 작업 한 거의 같은 말한다 .. 그러나 .. Peter가 알아 낸 바에 의하면 에 사용자 정의 timerjob과 함께 도움이 필요합니다. SharePoint 2007에서는 WebApplication이 연결된 각 ContentDatabase에 대해 작업이 실행됩니다. 은 다음 콘텐츠 데이터베이스에서 실행될 때 예측할 수없는 사실입니다 (상당히 성가신 사실).

의견/제안 사항을 제공해주세요.

답변

4

Anoop,

타이머 작업이 설명하고의 "청소"유형은 매우 일반적인 일이고, 나는 다른 프로젝트를 위해 자신을 그들 중 다수를 작성했습니다. 이 유형의 타이머 작업에서는 일종의 유지 관리 작업을 수행하기 위해 사이트, 웹 또는 목록 집합을 처리합니다. 일반적으로 한 번에 하나의 사이트/웹/목록을 처리하는 것이 가장 쉽습니다. 수행되는 작업은 최대 속도로 수행해야하는 유형이 아닙니다 (즉, 동시/다중 스레드 처리 모델을 필요로하는 작업). 빨리 완료하십시오).

이 시나리오에서는 일반적으로 "작업"SPJobLockType을 사용하도록 타이머 작업을 빌드했습니다. 언급했듯이 이렇게하면 팜의 지정된 시간에 타이머 작업 인스턴스가 하나만 실행됩니다. 이렇게하면 여러 인스턴스가 SPJobLockType이 "None"으로 실행되는 경우 발생하는 충돌을 피할 수 있으며 "ContentDatabase"SPJobLockType과 관련된 작업의 혼동을 피할 수 있습니다.

다음은 CodePlex에서 작성하고 게시 한 타이머 작업에 대한 링크입니다. 그것은 당신이 묘사했던 동일한 유형의 스윕 (다소 높은 레벨에서)을 수행합니다 : http://blobcachefarmflush.codeplex.com/SourceControl/changeset/view/53851#797787.타이머 작업의 인스턴스는 다음의 코드와 FeatureReceiver에 생성됩니다 : 당신이 쓴 무엇에 대한 이해를 바탕으로

BlobCacheFarmFlushTimerJob newJob = new BlobCacheFarmFlushTimerJob(jobName, housingWebApp, null, SPJobLockType.Job); 

, 나는 적절할 것 "작업"의 SPJobLockType을 믿습니다. 한 번에 하나의 작업 인스턴스 만 실행되도록 (동일한 작업의 두 개 이상의 인스턴스가 동일한 SPSite를 처리하지 못하게하려는 경우)

도움이 되었기를 바랍니다.

관련 문제