Développement de proxy Assets assets-proxy-development
Adobe Experience Manager Assets utilise un proxy pour distribuer le traitement de certaines tâches.
Un proxy est un Experience Manager instance qui utilise des objets Worker proxy comme processeurs chargés de gérer une tâche et de créer un résultat. Un programme de travail par proxy peut être utilisé pour de nombreuses tâches. Dans le cas d’un Experience Manager proxy de ressources qui peut être utilisé pour charger des ressources à des fins de rendu dans Experience Manager Ressources. Par exemple, la variable worker de proxy IDS utilise un InDesign Server pour traiter les fichiers à utiliser dans Experience Manager Ressources.
Lorsque le proxy est une instance distincte d’Experience Manager, il contribue à réduire la charge sur la ou les instances de création Experience Manager. Par défaut, Experience Manager Assets exécute les tâches de traitement des ressources dans la même JVM (externalisée via proxy) afin de réduire la charge sur le Experience Manager instance de création.
Proxy (Accès HTTP) proxy-http-access
Un proxy est disponible via le servlet HTTP lorsqu’il est configuré de sorte à accepter les tâches de traitement dans le répertoire suivant : /libs/dam/cloud/proxy
. Ce servlet crée une tâche sling à partir des paramètres publiés. Il est ensuite ajouté à la file d’attente des tâches de proxy et connecté au worker de proxy approprié.
Opérations prises en charge supported-operations
-
job
Exigences : le paramètre
jobevent
doit être défini en tant que correspondance de valeur en série. Il est utilisé pour créer unEvent
pour un processeur de tâches.Résultat : ajoute une nouvelle tâche. Si l’opération réussit, un identifiant de tâche unique est renvoyé.
curl -u admin:admin -F":operation=job" -F"someproperty=xxxxxxxxxxxx"
-F"jobevent=serialized value map" http://localhost:4502/libs/dam/cloud/proxy
-
result
Exigences : le paramètre
jobid
doit être défini.Résultat : renvoie une représentation JSON du nœud de résultats tel que créé par le processeur de tâches.
curl -u admin:admin -F":operation=result" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502 /libs/dam/cloud/proxy
-
resource
Exigences : le paramètre jobid doit être défini.
Résultat : renvoie une ressource associée à la tâche concernée.
curl -u admin:admin -F":operation=resource" -F"jobid=xxxxxxxxxxxx"
-F"resourcePath=something.pdf" http://localhost:4502/libs/dam/cloud/proxy
-
remove
Exigences : le paramètre jobid doit être défini.
Résultats : supprime une tâche si elle est trouvée.
curl -u admin:admin -F":operation=remove" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502/libs/dam/cloud/proxy
Programme de travail par proxy proxy-worker
Un programme de travail par proxy est un processeur chargé de gérer une tâche et de produire un résultat. Ils résident sur l’instance de proxy et doivent mettre en œuvre le JobProcessor sling pour être reconnus en tant que programmes de travail de proxy.
API client client-api
JobService
est disponible en tant que service OSGi qui prévoit des méthodes pour créer des tâches, supprimer des tâches et obtenir des résultats de ces tâches. La mise en œuvre par défaut de ce service (JobServiceImpl
) utilise le client HTTP pour communiquer avec le servlet de proxy à distance.
Voici un exemple d’utilisation d’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);
Configurations du service cloud cloud-service-configurations
com.day.cq.dam.api.proxy
.Les configurations de worker de proxy et de proxy sont disponibles via les configurations de services cloud comme accessibles depuis Experience Manager Ressources Outils ou sous /etc/cloudservices/proxy
. Chaque programme de travail de proxy doit ajouter un nœud sous /etc/cloudservices/proxy
pour les détails de configuration spécifiques au programme de travail (par exemple, /etc/cloudservices/proxy/workername
).
Voici un exemple d’utilisation d’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");
Développement d’un programme de travail de proxy personnalisé developing-a-customized-proxy-worker
Le worker de proxy IDS est un exemple de Experience Manager worker de proxy de ressources déjà fourni prêt à l’emploi pour externaliser le traitement des ressources InDesign.
Vous pouvez également développer et configurer vos propres Experience Manager Worker proxy Assets pour créer un programme de travail spécialisé pour distribuer et externaliser vos Experience Manager Tâches de traitement des ressources.
Pour configurer votre propre programme de travail de proxy personnalisé, vous devez effectuer les opérations suivantes :
-
Configurer et mettre en œuvre (à l’aide des événements Sling) :
- une rubrique de tâche personnalisée
- un gestionnaire d’événement de tâche personnalisé
-
Utilisez ensuite l’API JobService pour :
- distribuer votre tâche personnalisée au proxy ;
- gérer votre tâche
-
Si vous souhaitez utiliser le proxy d’un workflow, vous devez mettre en oeuvre une étape externe personnalisée à l’aide de l’API WorkflowExternalProcess et de l’API JobService.
Le diagramme et les étapes suivants décrivent la marche à suivre :
-
Une tâche Sling est utilisée, ce qui signifie que vous devez définir une rubrique de tâche pour votre cas d’emploi.
Par exemple, consultez
IDSJob.IDS_EXTENDSCRIPT_JOB
pour le programme de travail de proxy IDS. -
L’étape externe est utilisée pour déclencher l’événement et attendre qu’il soit terminé en interrogeant l’identifiant. Vous devez développer votre propre étape pour mettre en œuvre de nouvelles fonctionnalités.
Mettez en œuvre une API
WorkflowExternalProcess
, puis utilisez l’API JobService et votre rubrique de tâche pour préparer un événement de tâche et le distribuer à l’API JobService (un service OSGi).Par exemple, consultez
INDDMediaExtractProcess
.java pour le programme de travail de proxy IDS. -
Mettez en œuvre un gestionnaire de tâches pour votre rubrique. Ce gestionnaire nécessite un développement afin d’effectuer votre action spécifique et est considéré comme la mise en œuvre du programme de travail.
Par exemple, consultez
IDSJobProcessor.java
pour le programme de travail de proxy IDS. -
Utilisez
ProxyUtil.java
dans dam-commons. Cela vous permet de distribuer des tâches à des programmes de travail à l’aide du proxy de gestion des ressources numériques.