Job Processor가 시작 시에 작업 핸들러를 로드하는 방법에 대해 알아봅니다.
Job Processor는 Autodesk 및 타사 작업 핸들러를 모두 로드합니다.
타사 작업 핸들러 확장
각 타사 확장은 다음 확장 디렉토리의 자체 폴더에 들어 있어야 합니다.
%allusersprofile%₩Autodesk₩Vault[연도]₩Extensions₩
따라서 예를 들어, "JobHandlerSample"이라는 작업 핸들러 확장이 있는 경우 %allusersprofile%₩Autodesk₩Vault [연도]₩Extensions₩JobHandlerSample 디렉토리에 위치할 수 있습니다.
확장 디렉토리 내의 각 폴더에 대해 Job Processor는 구성 파일을 검사합니다. 구성 파일은 일반 텍스트 파일로 어떤 이름도 지정할 수 있지만 확장자 .vcet.config로 끝나야 합니다. 이 구성 파일이 없으면 확장을 로드할 수 없습니다. 다음은 샘플 구성 파일인 JobHandlerSample.vcet.config의 내용입니다.
<configuration> <connectivity.ExtensionSettings2> <assembly>JobHandlerSample</assembly> <extensionType>JobProcessor</extensionType> </connectivity.ExtensionSettings2> </configuration>
조립품 요소는 확장 dll의 이름을 지정합니다. 위 샘플에서 확장 dll 이름은 JobHandlerSample.dll입니다. 확장 유형 JobProcessor는 Job Processor에 대한 확장임을 나타냅니다(이 디렉토리에는 WebService 및 VaultClient 등의 다른 확장 유형도 있을 수 있음).
이제 확장 조립품(이 샘플에서는 JobHandlerSample.dll)이 로드됩니다. 로드 시 다음 검사가 수행됩니다.
namespace JobHandlerSample { public class JobHandlerSample : IJobHandler { public bool CanProcess(string strJobType) { return strJobType.Equals("jobhandlersample"); } public JobOutcome Execute(IJobProcessorServices context, IJob job) { return JobOutcome.Success; } } }
IJobHandler를 구현하는 조립품에는 정확히 1개의 공용 유형이 있어야 합니다. 이러한 경우가 아니면 확장 로드에 실패합니다. 이 유형의 인스턴스가 인스턴스화됩니다.
작업 핸들러 구성
작업 핸들러 구성 파일은 Job Processor에 대한 구성 정보가 들어 있는 xml 파일입니다. 이 파일은 JobProcessor.exe가 있는 동일한 디렉토리(일반적으로 C:₩Program Files₩Autodesk₩Vault Professional [연도]₩Explorer)에 있으며 이름은 JobProcessor.exe.config로 지정됩니다. 작업 핸들러 구성에 대한 관련 섹션은 configuration₩connectivityExplorer₩jobHandlers에 있습니다. 이 xml 섹션에서 각 jobHandler 요소는 단일 작업 핸들러를 나타냅니다. jobHandler xml 요소는 다음 형식입니다.
<jobHandler class="jobType" handler="NameOfTypeImplementingIJobHandler"/>
여기서
따라서 여기서 사용하는 샘플 확장에 대한 유효한 jobHandler 요소는 다음과 같습니다.
<jobHandler class="jobhandlersample" handler="JobHandlerSample.JobHandlerSample, JobHandlerSample"/>
JobProcessor.exe.config 파일에는 Autodesk의 내장된 각 작업 핸들러에 대해 이미 jobHandler 항목이 있음을 확인할 수 있습니다. 내장된 작업 핸들러는 해당 jobHandler 항목이 있는 경우에만 로드됩니다. 내장된 작업 핸들러는 JobProcessor.exe와 같은 디렉토리에 있습니다.
작업 핸들러가 활성화되었는지 확인
위의 구성 정보는 작업 유형을 특정 작업 핸들러와 연관시키는 데 사용됩니다. 일단 이 작업이 수행되면 특정 작업 유형을 처리할 수 있는지에 대해 각 작업 핸들러에 문의됩니다. 작업 핸들러는 인터페이스 메서드 IJobHandler.CanProcess를 구현하여 이 질문에 답변합니다. 이제 작업 핸들러가 해당 유형의 작업을 처리하는 데 필요한 모든 조건이 충족되었는지 확인해야 합니다(예를 들어 일부 dwf 작성 작업 핸들러는 Inventor가 설치되어 있는지 확인함).
Job Processor가 현재 처리하는 작업 유형을 확인할 경우(관리 > 작업 유형 메뉴 사용) 나열된 각 항목은 해당 작업 유형에 대한 작업 핸들러가 성공적으로 로드되었음을 의미합니다. 이 항목을 선택하면 해당 작업 핸들러가 활성화됩니다(즉, IJobHandler.CanProcess 구현에서 "true" 반환). Job Processor가 작업 핸들러에 "처리 가능 여부"를 다시 확인하도록 하려면 Job Processor를 종료한 다음 다시 시작해야 합니다.
모든 작업 핸들러가 로드 및 조회되면 Job Processor는 대기열에서 작업을 가져와 처리할 준비가 된 것입니다.
샘플 작업 핸들러
Vault SDK에는 샘플 작업 핸들러 JobProcessorApiSamples가 포함되어 있습니다.자세한 내용을 보려면 여기를 클릭하십시오.