Ontwikkeling van proxy's assets-proxy-development
Adobe Experience Manager Assets gebruikt een proxy om verwerking voor bepaalde taken te distribueren.
Een proxy is een specifieke (en soms aparte) proxy Experience Manager -instantie die proxyworkers gebruikt als processors die verantwoordelijk zijn voor het afhandelen van een taak en het maken van een resultaat. Een volmachtsarbeider kan voor een grote verscheidenheid van taken worden gebruikt. In het geval van een Experience Manager Assets-proxy kan worden gebruikt voor het laden van elementen voor rendering binnen Experience Manager Elementen. De IDS-proxyworker gebruikt een InDesign Server om bestanden te verwerken die kunnen worden gebruikt in Experience Manager Elementen.
Wanneer de proxy een aparte Experience Manager -instantie wordt de belasting op de Experience Manager ontwerpinstantie(s). Standaard, Experience Manager Elementen voeren de elementverwerkingstaken uit in dezelfde JVM (extern via Proxy) om de belasting op de Experience Manager ontwerpinstantie.
Proxy (HTTP-toegang) proxy-http-access
Een volmacht is beschikbaar via de Server van HTTP wanneer het wordt gevormd om verwerkingstaken goed te keuren bij: /libs/dam/cloud/proxy
. Deze servlet maakt een slingertaak van de geposte parameters. Deze wordt vervolgens toegevoegd aan de wachtrij van de proxytaak en verbonden met de desbetreffende proxyworker.
Ondersteunde bewerkingen supported-operations
-
job
Vereisten: de parameter
jobevent
moet als geserialiseerde waardekaart worden geplaatst. Hiermee maakt u eenEvent
voor een taakprocessor.Resultaat: Hiermee wordt een nieuwe taak toegevoegd. Als dit lukt, wordt een unieke taak-id geretourneerd.
curl -u admin:admin -F":operation=job" -F"someproperty=xxxxxxxxxxxx"
-F"jobevent=serialized value map" http://localhost:4502/libs/dam/cloud/proxy
-
result
Vereisten: de parameter
jobid
moet worden ingesteld.Resultaat: Retourneert een JSON-representatie van het resultaatknooppunt zoals gemaakt door de taakprocessor.
curl -u admin:admin -F":operation=result" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502 /libs/dam/cloud/proxy
-
resource
Vereisten: de parameter jobid moet worden ingesteld.
Resultaat: Retourneert een resource die aan de opgegeven taak is gekoppeld.
curl -u admin:admin -F":operation=resource" -F"jobid=xxxxxxxxxxxx"
-F"resourcePath=something.pdf" http://localhost:4502/libs/dam/cloud/proxy
-
remove
Vereisten: de parameter jobid moet worden ingesteld.
Resultaten: Hiermee wordt een taak verwijderd als deze wordt gevonden.
curl -u admin:admin -F":operation=remove" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502/libs/dam/cloud/proxy
Proxy Worker proxy-worker
Een proxyworker is een processor die verantwoordelijk is voor het afhandelen van een taak en het maken van een resultaat. De werknemers verblijven op de volmachtsinstantie en moeten uitvoeren Taakprocessor verkopen om te worden herkend als een proxyworker.
Client-API client-api
JobService
is beschikbaar als dienst OSGi die methodes verstrekt om banen tot stand te brengen, banen te verwijderen en resultaten van die banen te krijgen. De standaardimplementatie van deze service (JobServiceImpl
) gebruikt de HTTP-client om te communiceren met de externe proxyserver.
Hieronder ziet u een voorbeeld van API-gebruik:
@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);
Configuraties van Cloud Servicen cloud-service-configurations
com.day.cq.dam.api.proxy
.Zowel proxyconfiguraties als proxyarbeidersconfiguraties zijn beschikbaar via cloudservices die toegankelijk zijn via de Experience Manager Activa Gereedschappen console of onder /etc/cloudservices/proxy
. Elke proxyworker moet een knooppunt toevoegen onder /etc/cloudservices/proxy
voor arbeidersspecifieke configuratiedetails (bijvoorbeeld /etc/cloudservices/proxy/workername
).
Hieronder ziet u een voorbeeld van API-gebruik:
@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");
Een aangepaste proxyworker ontwikkelen developing-a-customized-proxy-worker
De IDS-proxyworker is een voorbeeld van een Experience Manager De volmachtsarbeider van activa die reeds uit-van-de-doos wordt verstrekt om de verwerking van activa uit te besteden InDesign.
U kunt ook uw eigen Experience Manager De volmachtsarbeider van activa om een gespecialiseerde arbeider tot stand te brengen om uw te verzenden en uit te besteden Experience Manager Elementverwerkingstaken.
Als u uw eigen aangepaste proxyworker wilt instellen, moet u:
-
Instellen en implementeren (met gebruik van Gebeurtenis splitsen):
- een aangepast taakonderwerp
- een aangepaste taakgebeurtenishandler
-
Gebruik vervolgens de JobService-API om:
- Verzend uw aangepaste taak naar de proxy
- uw taak beheren
-
Als u de proxy uit een workflow wilt gebruiken, moet u een aangepaste externe stap implementeren met de WorkflowExternalProcess-API en de JobService-API.
In het volgende diagram en in de volgende stappen wordt gedetailleerd beschreven hoe u moet doorgaan:
-
A Verkooptaak wordt gebruikt, zodat moet u een baanonderwerp voor uw gebruiksgeval bepalen.
Zie als voorbeeld
IDSJob.IDS_EXTENDSCRIPT_JOB
voor de IDS-proxyworker. -
De externe stap wordt gebruikt om de gebeurtenis te activeren en dan te wachten tot dat wordt gebeƫindigd; dit wordt gedaan door opiniepeilingen over de id . U moet uw eigen stap ontwikkelen om nieuwe functionaliteit uit te voeren.
Een
WorkflowExternalProcess
, dan gebruik de API JobService en uw baanonderwerp om een baangebeurtenis voor te bereiden en het te verzenden naar JobService (een dienst OSGi).Zie als voorbeeld
INDDMediaExtractProcess
.java voor de IDS volmachtsarbeider. -
Voer een baanmanager voor uw onderwerp uit. Deze manager vereist ontwikkeling zodat het uw specifieke actie uitvoert en beschouwd wordt als om de arbeidersimplementatie.
Zie als voorbeeld
IDSJobProcessor.java
voor de IDS-proxyworker. -
Gebruik van
ProxyUtil.java
in dam-commons. Hierdoor kunt u taken naar werknemers verzenden met de proxy voor moederdieren.