Adobe Experience Manager Assets använder en proxy för att distribuera bearbetning för vissa uppgifter.
En proxy är en specifik (och ibland separat) Experience Manager-instans som använder proxyarbetare som processorer som hanterar ett jobb och skapar ett resultat. En proxyarbetare kan användas för en mängd olika uppgifter. Om det finns en Assets proxy som kan användas för att läsa in resurser för återgivning i Assets. Till exempel IDS-proxyarbetare använder Adobe InDesign Server som bearbetar filer för användning i Assets.
När proxyn är en separat Experience Manager -instans som minskar belastningen på Experience Manager redigeringsinstans(er). Som standard Assets kör resurshanteringsuppgifterna i samma JVM (externaliserat via Proxy) för att minska belastningen på Experience Manager -redigeringsinstans.
En proxy är tillgänglig via HTTP-servern när den är konfigurerad att acceptera bearbetningsjobb på: /libs/dam/cloud/proxy
. Den här servern skapar ett snedjobb av de bokförda parametrarna. Detta läggs sedan till i proxyjobbkön och ansluts till lämplig proxyarbetare.
job
Krav: parametern jobevent
måste anges som en serialiserad värdekarta. Detta används för att skapa en Event
för en jobbprocessor.
Resultat: Lägger till ett nytt jobb. Om det lyckas returneras ett unikt jobb-ID.
curl -u admin:admin -F":operation=job" -F"someproperty=xxxxxxxxxxxx"
-F"jobevent=serialized value map" http://localhost:4502/libs/dam/cloud/proxy
result
Krav: parametern jobid
måste anges.
Resultat: Returnerar en JSON-representation av den resulterande noden som skapats av jobbprocessorn.
curl -u admin:admin -F":operation=result" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502 /libs/dam/cloud/proxy
resource
Krav: parametern jobid måste anges.
Resultat: Returnerar en resurs som är associerad med det angivna jobbet.
curl -u admin:admin -F":operation=resource" -F"jobid=xxxxxxxxxxxx"
-F"resourcePath=something.pdf" http://localhost:4502/libs/dam/cloud/proxy
remove
Krav: parametern jobid måste anges.
Resultat: Tar bort ett jobb om det hittas.
curl -u admin:admin -F":operation=remove" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502/libs/dam/cloud/proxy
En proxyarbetare är en processor som hanterar ett jobb och skapar ett resultat. Arbetarna finns på proxyinstansen och måste implementera sling JobProcessor som ska godkännas som proxyarbetare.
Arbetaren måste implementera sling JobProcessor som ska godkännas som proxyarbetare.
JobService
är tillgänglig som en OSGi-tjänst som tillhandahåller metoder för att skapa jobb, ta bort jobb och hämta resultat från dessa jobb. Standardimplementeringen av den här tjänsten (JobServiceImpl
) använder HTTP-klienten för att kommunicera med fjärrproxyservern.
Nedan följer ett exempel på API-användning:
@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);
Både proxy- och proxy-arbetskonfigurationer är tillgängliga via molntjänster som är tillgängliga från Assets verktyg konsol eller under /etc/cloudservices/proxy
. Varje proxyarbetare förväntas lägga till en nod under /etc/cloudservices/proxy
för arbetarspecifik konfigurationsinformation (till exempel /etc/cloudservices/proxy/workername
).
Se InDesign Server Proxy Worker-konfiguration och Konfiguration av Cloud Service för mer information.
Nedan följer ett exempel på API-användning:
@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");
The IDS-proxyarbetare är ett exempel på en Assets proxyarbetare som redan är färdiga att använda för att lägga ut bearbetning av InDesigner.
Du kan också utveckla och konfigurera egna Assets proxyarbetare för att skapa en specialiserad arbetare som skickar ut och lägger ut Assets bearbeta uppgifter.
Om du konfigurerar en egen anpassad proxyarbetare måste du:
Konfigurera och implementera (med Sling-händelse):
Använd sedan JobService API för att:
Om du vill använda utkastet från ett arbetsflöde måste du implementera ett anpassat externt steg med WorkflowExternalProcess API och JobService API.
Följande diagram och steg visar hur du fortsätter:
I följande steg anges motsvarigheter till InDesigner som referensexempel.
A Sling-jobb används, så du måste definiera ett jobbämne för ditt användningsfall.
Ett exempel finns i IDSJob.IDS_EXTENDSCRIPT_JOB
för IDS-proxyarbetaren.
Det externa steget används för att utlösa händelsen och sedan vänta tills det är klart. Detta görs genom att avfråga ID:t. Du måste utveckla ett eget steg för att implementera nya funktioner.
Implementera en WorkflowExternalProcess
använder du sedan JobService API och ditt jobbämne för att förbereda en jobbhändelse och skicka den till JobService (en OSGi-tjänst).
Ett exempel finns i INDDMediaExtractProcess
.java for the IDS proxy worker.
Implementera en jobbhanterare för ditt ämne. Hanteraren kräver utveckling så att den utför din specifika åtgärd och anses vara implementeringen av arbetaren.
Ett exempel finns i IDSJobProcessor.java
för IDS-proxyarbetaren.
Använd ProxyUtil.java
i dammråttor. På så sätt kan du skicka jobb till arbetare med dammproxyn.
Vad Assets proxyramverket har inte poolfunktionen som standard.
The InDesign integreringen ger åtkomst till en pool med InDesign -servrar (IDSPool). Den här poolen är specifik för InDesign integrering och inte en del av Assets proxyramverk.
Synkronisering av resultat:
Om ingen instans använder samma proxy stannar bearbetningsresultatet kvar hos proxyn. Det är klientens (Experience Manager Author) uppgift att begära resultatet med samma unika jobb-ID som det som anges för klienten när jobbet skapas. Proxyservern utför jobbet och ser till att resultatet är klart att begäras.