Desarrollo de proxy de recursos assets-proxy-development
Adobe Experience Manager Assets utiliza un proxy para distribuir el procesamiento de determinadas tareas.
Un proxy es específico (y a veces independiente) Experience Manager instancia que utiliza trabajadores proxy como procesadores responsables de gestionar un trabajo y crear un resultado. Un trabajador proxy puede utilizarse para una amplia variedad de tareas. En el caso de un Experience Manager El proxy de recursos se puede utilizar para cargar recursos para procesarlos en Experience Manager Recursos. Por ejemplo, la variable Trabajador de proxy IDS utiliza un InDesign Server para procesar archivos que se pueden usar en Experience Manager Recursos.
Cuando el proxy es un Experience Manager esto ayuda a reducir la carga en la Experience Manager crear instancias. De forma predeterminada, Experience Manager Assets ejecuta las tareas de procesamiento de recursos en la misma JVM (externalizada mediante proxy) para reducir la carga en la Experience Manager crear instancia.
Proxy (acceso HTTP) proxy-http-access
Hay un proxy disponible a través del servlet HTTP cuando está configurado para aceptar trabajos de procesamiento en: /libs/dam/cloud/proxy
. Este servlet crea un trabajo de sling a partir de los parámetros registrados. A continuación, esto se agrega a la cola de trabajos del proxy y se conecta al trabajador del proxy adecuado.
Operaciones compatibles supported-operations
-
job
Requisitos: el parámetro
jobevent
debe establecerse como mapa de valores serializado. Se utiliza para crear unEvent
para un procesador de trabajos.Resultado: Agrega un nuevo trabajo. Si se realiza correctamente, se devuelve un identificador de trabajo único.
curl -u admin:admin -F":operation=job" -F"someproperty=xxxxxxxxxxxx"
-F"jobevent=serialized value map" http://localhost:4502/libs/dam/cloud/proxy
-
result
Requisitos: el parámetro
jobid
debe estar configurado.Resultado: Devuelve una representación JSON del nodo de resultado creado por el procesador de trabajos.
curl -u admin:admin -F":operation=result" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502 /libs/dam/cloud/proxy
-
resource
Requisitos: se debe establecer el parámetro jobid .
Resultado: Devuelve un recurso asociado al trabajo dado.
curl -u admin:admin -F":operation=resource" -F"jobid=xxxxxxxxxxxx"
-F"resourcePath=something.pdf" http://localhost:4502/libs/dam/cloud/proxy
-
remove
Requisitos: se debe establecer el parámetro jobid .
Resultados: Elimina un trabajo si se encuentra.
curl -u admin:admin -F":operation=remove" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502/libs/dam/cloud/proxy
Trabajador de proxy proxy-worker
Un trabajador proxy es un procesador responsable de gestionar un trabajo y crear un resultado. Los trabajadores residen en la instancia de proxy y deben implementar sling JobProcessor para ser reconocido como trabajador proxy.
API de cliente client-api
JobService
está disponible como servicio de OSGi que proporciona métodos para crear trabajos, eliminarlos y obtener resultados de esos trabajos. La implementación predeterminada de este servicio (JobServiceImpl
) utiliza el cliente HTTP para comunicarse con el servlet proxy remoto.
El siguiente es un ejemplo de uso de API:
@Reference
JobService proxyJobService;
// to create a new 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);
Configuraciones de Cloud Service cloud-service-configurations
com.day.cq.dam.api.proxy
.Las configuraciones de trabajo proxy y proxy están disponibles a través de configuraciones de servicios en la nube, a las que se puede acceder desde Experience Manager Recursos Herramientas consola o en /etc/cloudservices/proxy
. Se espera que cada trabajador proxy agregue un nodo en /etc/cloudservices/proxy
para detalles de configuración específicos del trabajador (por ejemplo, /etc/cloudservices/proxy/workername
).
El siguiente es un ejemplo de uso de 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");
Desarrollo de un Trabajador de Proxy Personalizado developing-a-customized-proxy-worker
La variable Trabajador de proxy IDS es un ejemplo de Experience Manager Trabajador de proxy de recursos que ya se ha proporcionado de forma predeterminada para externalizar el procesamiento de recursos de Indesign.
También puede desarrollar y configurar sus propios Experience Manager Trabajador de proxy de recursos para crear un trabajador especializado para distribuir y externalizar su Experience Manager Tareas de procesamiento de recursos.
La configuración de su propio trabajador proxy personalizado requiere que:
-
Configure e implemente (mediante eventos de Sling):
- un tema de trabajo personalizado
- un controlador de eventos de trabajo personalizado
-
A continuación, utilice la API de JobService para:
- envíe su trabajo personalizado al proxy
- administrar su trabajo
-
Si desea utilizar el proxy desde un flujo de trabajo, debe implementar un paso externo personalizado mediante la API WorkflowExternalProcess y la API JobService.
El diagrama y los pasos siguientes detallan cómo continuar:
-
A Trabajo de Sling por lo que debe definir un tema de trabajo para su caso de uso.
Como ejemplo, consulte
IDSJob.IDS_EXTENDSCRIPT_JOB
para el programa de trabajo del proxy IDS. -
El paso externo se utiliza para almacenar en déclencheur el evento y luego esperar hasta que finalice; esto se hace sondeando en el id. Debe desarrollar su propio paso para implementar la nueva funcionalidad.
Implemente un
WorkflowExternalProcess
, utilice la API de JobService y el tema de su trabajo para preparar un evento de trabajo y enviarlo al JobService (un servicio de OSGi).Como ejemplo, consulte
INDDMediaExtractProcess
.java para el programa de trabajo del proxy IDS. -
Implemente un controlador de trabajo para su tema. Este controlador requiere desarrollo para que realice su acción específica y se considere la implementación del trabajador.
Como ejemplo, consulte
IDSJobProcessor.java
para el programa de trabajo del proxy IDS. -
Utilizar
ProxyUtil.java
en dam-commons. Esto le permite enviar trabajos a los trabajadores usando el proxy de la represa.