Sviluppo proxy risorse assets-proxy-development
Adobe Experience Manager Assets utilizza un proxy per distribuire l’elaborazione per determinate attività.
Un proxy è specifico (e talvolta separato) Experience Manager istanza che utilizza i proxy worker come processori responsabili della gestione di un processo e della creazione di un risultato. Un proxy worker può essere utilizzato per un'ampia varietà di attività. Nel caso di un Experience Manager Proxy di Assets che può essere utilizzato per caricare le risorse per il rendering in Experience Manager Risorse. Ad esempio, il proxy worker IDS utilizza un InDesign Server per elaborare i file da utilizzare in Experience Manager Risorse.
Quando il proxy è separato Experience Manager in questo modo si riduce il carico sul Experience Manager istanze di authoring. Per impostazione predefinita, Experience Manager Le risorse eseguono le attività di elaborazione delle risorse nella stessa JVM (esternalizzata tramite Proxy) per ridurre il carico sul Experience Manager istanza di authoring.
Proxy (accesso HTTP) proxy-http-access
Un proxy è disponibile tramite il servlet HTTP quando è configurato per accettare processi di elaborazione in: /libs/dam/cloud/proxy
. Questo servlet crea un lavoro sling dai parametri inviati. Questo viene quindi aggiunto alla coda del processo proxy e collegato al processo di lavoro proxy appropriato.
Operazioni supportate supported-operations
-
job
Requisiti: il parametro
jobevent
deve essere impostato come mappa del valore serializzato. Viene utilizzato per creare unEvent
per un processore di lavoro.Risultato: Aggiunge un nuovo processo. In caso di esito positivo, viene restituito un ID processo univoco.
curl -u admin:admin -F":operation=job" -F"someproperty=xxxxxxxxxxxx"
-F"jobevent=serialized value map" http://localhost:4502/libs/dam/cloud/proxy
-
result
Requisiti: il parametro
jobid
deve essere impostato.Risultato: Restituisce una rappresentazione JSON del Nodo risultato creato dal processore del processo.
curl -u admin:admin -F":operation=result" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502 /libs/dam/cloud/proxy
-
resource
Requisiti: il parametro jobid deve essere impostato.
Risultato: Restituisce una risorsa associata al processo specificato.
curl -u admin:admin -F":operation=resource" -F"jobid=xxxxxxxxxxxx"
-F"resourcePath=something.pdf" http://localhost:4502/libs/dam/cloud/proxy
-
remove
Requisiti: il parametro jobid deve essere impostato.
Risultati: Rimuove un processo se trovato.
curl -u admin:admin -F":operation=remove" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502/libs/dam/cloud/proxy
Proxy Worker proxy-worker
Un proxy worker è un processore responsabile della gestione di un processo e della creazione di un risultato. I lavoratori risiedono nell'istanza proxy e devono implementare sling JobProcessor da riconoscere come proxy worker.
API client client-api
JobService
è disponibile come servizio OSGi che fornisce metodi per creare lavori, rimuovere lavori e ottenere risultati da tali processi. Implementazione predefinita di questo servizio (JobServiceImpl
) utilizza il client HTTP per comunicare con il servlet proxy remoto.
Di seguito è riportato un esempio di utilizzo 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);
Configurazioni Cloud Service cloud-service-configurations
com.day.cq.dam.api.proxy
.Le configurazioni proxy e proxy worker sono disponibili tramite configurazioni cloud services accessibili dal Experience Manager Risorse Strumenti console o sotto /etc/cloudservices/proxy
. Ogni proxy worker deve aggiungere un nodo in /etc/cloudservices/proxy
per i dettagli di configurazione specifici del lavoratore (ad esempio, /etc/cloudservices/proxy/workername
).
Di seguito è riportato un esempio di utilizzo 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");
Sviluppo di un proxy worker personalizzato developing-a-customized-proxy-worker
La proxy worker IDS è un esempio di Experience Manager Il processo di lavoro proxy delle risorse già fornito come predefinito per esternalizzare l’elaborazione delle risorse di Indesign.
Puoi anche sviluppare e configurare Experience Manager Attività proxy worker per creare un processo di lavoro specializzato per l’invio e l’esternalizzazione dei Experience Manager Attività di elaborazione delle risorse.
Per configurare un processo di lavoro proxy personalizzato è necessario:
-
Configurazione e implementazione (utilizzando l’evento Sling):
- un argomento di lavoro personalizzato
- un gestore di eventi di lavoro personalizzato
-
Quindi utilizza l’API JobService per:
- invia il processo personalizzato al proxy
- gestire il proprio lavoro
-
Se desideri utilizzare il proxy da un flusso di lavoro, devi implementare un passaggio esterno personalizzato utilizzando l’API WorkflowExternalProcess e l’API JobService.
Il diagramma seguente e i passaggi descrivono come procedere:
-
A Processo Sling viene utilizzato, quindi devi definire un argomento di lavoro per il tuo caso d’uso.
Ad esempio, vedi
IDSJob.IDS_EXTENDSCRIPT_JOB
per il proxy worker IDS. -
Il passaggio esterno viene utilizzato per attivare l’evento e quindi attendere fino al termine; questo viene fatto tramite sondaggi sull'id. Devi sviluppare un tuo passaggio per implementare nuove funzionalità.
Implementare un
WorkflowExternalProcess
, quindi utilizza l’API JobService e l’argomento del tuo lavoro per preparare un evento di lavoro e inviarlo al JobService (un servizio OSGi).Ad esempio, vedi
INDDMediaExtractProcess
.java per il proxy worker IDS. -
Implementa un gestore di processi per l’argomento. Questo gestore richiede lo sviluppo in modo che esegua l'azione specifica ed è considerato l'implementazione del processo di lavoro.
Ad esempio, vedi
IDSJobProcessor.java
per il proxy worker IDS. -
Utilizzare
ProxyUtil.java
in dam-commons. Questo consente di inviare i lavori ai lavoratori utilizzando il proxy dam.