Operações suportadas

  • job

    Requisitos: o parâmetro jobevent deve ser definido como um mapa de valores serializados. Isto é usado para criar um Event para um processador de trabalho.

    Resultado: adiciona um novo trabalho. Se for bem-sucedido, uma ID de tarefa exclusiva será retornada.

curl -u admin:admin -F":operation=job" -F"someproperty=xxxxxxxxxxxx"
    -F"jobevent=serialized value map" http://localhost:4502/libs/dam/cloud/proxy
  • result

    Requisitos: o parâmetro jobid deve ser definido.

    Resultado: retorna uma representação JSON do Nó de resultado como criado pelo processador de trabalho.

curl -u admin:admin -F":operation=result" -F"jobid=xxxxxxxxxxxx"
    http://localhost:4502   /libs/dam/cloud/proxy
  • resource

    Requisitos: a id de trabalho do parâmetro deve ser definida.

    Resultado: retorna um recurso associado ao trabalho especificado.

curl -u admin:admin -F":operation=resource" -F"jobid=xxxxxxxxxxxx"
    -F"resourcePath=something.pdf" http://localhost:4502/libs/dam/cloud/proxy
  • remove

    Requisitos: a id de trabalho do parâmetro deve ser definida.

    Resultados: remove um trabalho, se encontrado.

curl -u admin:admin -F":operation=remove" -F"jobid=xxxxxxxxxxxx"
    http://localhost:4502/libs/dam/cloud/proxy

Worker do proxy

Um trabalhador proxy é um processador responsável por gerenciar um trabalho e criar um resultado. Os trabalhadores residem na instância proxy e devem implementar o sling JobProcessor para serem reconhecidos como um trabalhador proxy.

NOTE
O trabalhador deve implementar o sling JobProcessor para ser reconhecido como um trabalhador proxy.

API do cliente

JobService está disponível como um serviço OSGi que fornece métodos para criar trabalhos, remover trabalhos e obter resultados desses trabalhos. A implementação padrão deste serviço (JobServiceImpl) usa o cliente HTTP para se comunicar com o servlet proxy remoto.

Veja a seguir um exemplo de uso da API:

@Reference
 JobService proxyJobService;

 // to create a job
 final Hashtable props = new Hashtable();
 props.put("someproperty", "some value");
 props.put(JobUtil.PROPERTY_JOB_TOPIC, "myworker/job"); // this is an identifier of the worker
 final String jobId = proxyJobService.addJob(props, new Asset[]{asset});

 // to check status (returns JobService.STATUS_FINISHED or JobService.STATUS_INPROGRESS)
 int status = proxyJobService.getStatus(jobId)

 // to get the result
 final String jsonString = proxyJobService.getResult(jobId);

 // to remove job and cleanup
 proxyJobService.removeJob(jobId);

configurações de Cloud Service

As configurações de proxy e de trabalho de proxy estão disponíveis por meio das configurações de serviços em nuvem, conforme acessível no console Assets Ferramentas ou em /etc/cloudservices/proxy. Espera-se que cada trabalhador proxy adicione um nó sob /etc/cloudservices/proxy para obter detalhes de configuração específicos do trabalhador (por exemplo, /etc/cloudservices/proxy/workername).

Veja a seguir um exemplo de uso da API:

@Reference(policy = ReferencePolicy.STATIC)
 ProxyConfig proxyConfig;

 // to get proxy config
 Configuration cloudConfig = proxyConfig.getConfiguration();
 final String value = cloudConfig.get("someProperty", "defaultValue");

 // to get worker config
 Configuration cloudConfig = proxyConfig.getConfiguration("workername");
 final String value = cloudConfig.get("someProperty", "defaultValue");

Desenvolvimento de um Worker de proxy personalizado

O trabalhador de proxy de IDS é um exemplo de um trabalhador de proxy Assets que já foi fornecido pronto para uso para terceirizar o processamento de ativos de InDesign.

Você também pode desenvolver e configurar seu próprio Assets proxy worker para criar um worker especializado para despachar e terceirizar suas tarefas de processamento de Assets.

Para configurar seu próprio trabalhador proxy personalizado, é necessário:

  • Configurar e implementar o (usando evento Sling):

    • um tópico de trabalho personalizado
    • um manipulador de eventos de job personalizado
  • Em seguida, use a API JobService para:

    • despachar seu trabalho personalizado para o proxy
    • gerenciar seu trabalho
  • Se quiser usar o proxy de um fluxo de trabalho, você deve implementar uma etapa externa personalizada usando a API WorkflowExternalProcess e a API JobService.

O diagrama e as etapas a seguir detalham como proceder:

chlimage_1-249

NOTE
Nas etapas a seguir, equivalentes de InDesign são indicados como exemplos de referência.
  1. Um trabalho do Sling é usado, portanto, você precisa definir um tópico de trabalho para seu caso de uso.

    Como exemplo, consulte IDSJob.IDS_EXTENDSCRIPT_JOB para o trabalhador proxy de IDS.

  2. A etapa externa é usada para acionar o evento e, em seguida, aguardar até que ele seja concluído; isso é feito sondando a id. Desenvolva sua própria etapa para implementar novas funcionalidades.

    Implemente um WorkflowExternalProcess, em seguida, use a API JobService e seu tópico de trabalho para preparar um evento de trabalho e despachá-lo para o JobService (um serviço OSGi).

    Como exemplo, consulte INDDMediaExtractProcess.java para o trabalhador proxy IDS.

  3. Implemente um manipulador de tarefas para o tópico. Esse manipulador requer desenvolvimento para que execute sua ação específica e seja considerado a implementação do trabalhador.

    Como exemplo, consulte IDSJobProcessor.java para o trabalhador proxy de IDS.

  4. Use ProxyUtil.java em dam-commons. Isso permite despachar trabalhos para trabalhadores usando o proxy DAM.

NOTE
O que a estrutura proxy Assets não fornece pronto para uso é o mecanismo de pool.
A integração InDesign permite o acesso de um pool de InDesign servidores (IDSPool). Este pool é específico à integração do InDesign e não faz parte da estrutura proxy Assets.
NOTE
Sincronização dos resultados:
Com n instâncias usando o mesmo proxy, o resultado do processamento permanece com o proxy. É o trabalho do cliente (Experience Manager Author) solicitar o resultado usando a mesma ID de trabalho exclusiva fornecida ao cliente na criação do trabalho. O proxy simplesmente faz o trabalho e mantém o resultado pronto para ser solicitado.

Experience Manager