Saiba mais sobre como o Job Processor carrega manipuladores de trabalho na inicialização.
O Job Processor carrega tanto manipuladores de trabalho da Autodesk como de terceiros.
Extensões de Manipulador de trabalho de terceiros
Cada extensão de terceiro deve existir em sua própria pasta no diretório Extensão:
%allusersprofile%\Autodesk\Vault[ano]\Extensions\
Assim, por exemplo, se tivéssemos uma extensão de manipulador de trabalho chamada "JobHandlerSample", ela poderia ficar no diretório %allusersprofile%\Autodesk\Vault [ano]\Extensions\JobHandlerSample.
Para cada pasta no diretório de extensão, o Job Processor overview procura um arquivo de configuração. O arquivo de configuração é um arquivo de texto simples que pode possuir qualquer nome, mas deve terminar com a extensão .vcet.config. Se o arquivo de configuração não existir, haverá falha no carregamento da extensão. Aqui está o conteúdo de um arquivo de configuração de amostra, JobHandlerSample.vcet.config:
<configuration> <connectivity.ExtensionSettings2> <assembly>JobHandlerSample</assembly> <extensionType>JobProcessor</extensionType> </connectivity.ExtensionSettings2> </configuration>
O elemento montagem especifica o nome da extensão dll. Portanto, na amostra acima, a extensão dll é denominada JobHandlerSample.dll. O tipo de extensão de JobProcessor indica que se trata de uma extensão do Job Processor (outros tipos de extensão também pode Live no diretório: WebService e VaultClient).
A montagem da extensão (em nossa amostra, JobHandlerSample.dll) é carregada. No carregamento, as seguintes verificações são executadas:
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; } } }
Deve haver exatamente um tipo público na montagem que implemente IJobHandler. Se isso não ocorrer, haverá falha no carregamento da extensão. Uma instância desse tipo é instanciada.
Configuração do Manipulador de trabalho.
O arquivo de configuração do Manipulador de trabalho é um arquivo XML que contém as informações de configuração para o Job Processor. Ela está localizada no mesmo diretório que JobProcessor.exe (geralmente C:\Arquivos de Programas\Autodesk\Vault Professional [ano]\Explorer) e se chama JobProcessor.exe.config. A seção apropriada para a configuração dos manipuladores de trabalho está em configuration\connectivityexplorer\jobhandlers. Nesta seção XML, cada elemento dojobHandler representa um Manipulador de trabalho. Os elementos XML do jobHandler são da seguinte forma:
<jobHandler class="jobType" handler="NameOfTypeImplementingIJobHandler"/>
Em que local:
Portanto, um elemento jobHandler válido para nosso exemplo de extensão seria:
<jobHandler class="jobhandlersample" handler="JobHandlerSample.JobHandlerSample, JobHandlerSample"/>
No arquivo JobProcessor.exe.config, você perceberá que já existe uma entrada jobHandler para cada manipulador de trabalho integrado da Autodesk. Os Manipuladores de trabalho integrados só são carregados quando há uma entrada jobHandler para eles. As dlls do Manipulador de trabalho integrado estão localizadas no mesmo diretório que o arquivo JobProcessor.exe.
Verificar se os Manipuladores de trabalho estão ativados
As informações de configuração acima são utilizadas para associar um Tipo de trabalho a um determinado Manipulador de trabalho. Uma vez que é concluído, cada Manipulador de trabalho é questionado com relação à capacidade de processamento do Tipo de trabalho específico. O Manipulador de trabalho responde essa pergunta implementando o método da interface IJobHandler.CanProcess. Nessa etapa, o Manipulador de trabalho deve verificar se tem tudo que precisa para processar esse tipo de trabalho (por exemplo, alguns dos manipuladores de trabalho de criação de dwf devem verificar se o Inventor está instalado).
Quando você verifica quais Tipos de trabalho estão sendo processados por um Job Processor (usando o menu Gerenciamento-> Tipos de trabalho...), cada entrada relacionada significa que um Manipulador de trabalho para o Tipo de trabalho foi carregado com sucesso. Se a entrada for selecionada, indica que o Manipulador de trabalho está ativado (isto é, ele retorna "verdadeiro" de sua implementação de IJobHandler.CanProcess). Para que o Job Processor pergunte novamente ao Manipulador de trabalho se "pode processar", o usuário precisa sair do Job Processor e reiniciá-lo.
Depois que todos os manipuladores de trabalho forem carregados e consultados, o Job Processor estará pronto para começar a extrair trabalhos da fila e processá-los.
Exemplo de manipulador de trabalho
O Vault SDK contém o exemplo de manipulador de trabalho JobProcessorApiSamples.Para obter mais informações, clique aqui.