Proxyarbetare

En proxyarbetare är en processor som hanterar ett jobb och skapar ett resultat. Arbetare finns på proxyinstansen och måste implementera snedande JobProcessor för att identifieras som en proxyarbetare.

NOTE
Arbetaren måste implementera sling JobProcessor för att identifieras som en proxyarbetare.

Klient-API

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);

Konfigurationer av Cloud Service

Både proxy- och proxyarbetarkonfigurationer är tillgängliga via molntjänster som tillgängliga från Assets Tools-konsolen 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).

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");

Utveckla en anpassad proxyarbetare

IDS-proxyarbetaren är ett exempel på en Assets-proxyarbetare som redan har tillhandahållits utanför ramarna för att lägga ut bearbetning av InDesign resurser på entreprenad.

Du kan också utveckla och konfigurera din egen Assets-proxyarbetare för att skapa en specialarbetare som skickar och lägger ut Assets-bearbetningsuppgifterna på entreprenad.

Om du konfigurerar en egen anpassad proxyarbetare måste du:

  • Konfigurera och implementera (med Sling-händelse):

    • ett anpassat jobbämne
    • en anpassad jobbhändelsehanterare
  • Använd sedan JobService API för att:

    • skicka ditt anpassade jobb till proxyn
    • hantera ditt jobb
  • 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:

chlimage_1-249

NOTE
I följande steg anges motsvarigheter till InDesigner som referensexempel.
  1. Ett delningsjobb används, så du måste definiera ett jobbämne för ditt användningsfall.

    Se till exempel IDSJob.IDS_EXTENDSCRIPT_JOB för IDS-proxyarbetaren.

  2. 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. Utveckla egna steg för att implementera nya funktioner.

    Implementera en WorkflowExternalProcess, använd sedan JobService API och ditt jobbämne för att förbereda en jobbhändelse och skicka den till JobService (en OSGi-tjänst).

    Se till exempel INDDMediaExtractProcess.java för IDS-proxyarbetaren.

  3. 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.

    Se till exempel IDSJobProcessor.java för IDS-proxyarbetaren.

  4. Använd ProxyUtil.java i dammkompositioner. På så sätt kan du skicka jobb till arbetare med dammproxyn.

NOTE
Det som proxyramverket Assets inte tillhandahåller är poolmekanismen.
Integrationen InDesign ger åtkomst till en pool med InDesign servrar (IDSPool). Den här poolen är specifik för InDesign-integrering och ingår inte i Assets-proxyramverket.
NOTE
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.

Experience Manager