Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

14.12.3. Configurer les Jobs asynchrones avec RESTEasy

Résumé

Cette section couvre des exemples de paramètres de recherche de jobs asynchrones avec RESTEasy.

Avertissement

La sécurité basée rôle ne fonctionne pas dans le Service de jobs asynchrones, qui ne fonctionne pas de manière portable.Si le Service de jobs asynchrones est utilisé, la sécurité d'application doit être effectuée via déclarations XML par le fichier web.xml à la place.

Important

Bien que les méthodes GET, DELETE, et PUT soient invoquées de manière asynchrones, cela rompt le contrat HTTP 1.1 de ces méthodes. Bien que ces invocations ne changent sans doute pas l'état de la ressource en cas d'invocations multiples, elles changent d'état du serveur en nouvelles entrées de Job pour chaque invocation.

Exemple 14.18. Le paramètre Asynch

Le paramètre de requête asynch est utilisé pour exécuter des invocations en arrière-plan. Une réponse 202 Accepted est retourné, ainsi que d'un en-tête d'emplacement avec un URL pointant vers la réponse de la méthode de base.
POST http://example.com/myservice?asynch=true
L'exemple ci-dessus retournera une réponse Accepted 202. Il retournera également un en-tête d'emplacement avec un URL pointant vers la réponse de la méthode de base. Voici un exemple de l'en-tête d'emplacement :
HTTP/1.1 202 Accepted
Location: http://example.com/asynch/jobs/3332334
L'URI prendra la forme suivante :
/asynch/jobs/{job-id}?wait={millisconds}|nowait=true
Les opérations GET, POST et DELETE peuvent être effectuées sur cet URL.
  • GET renvoie la méthode de ressources JAX-RS invoquée comme réponse si le job est complété. Si le job n'a pas été complété, ce GET renverra un code de réponse 202 Accepted. L'invocation de GET ne supprime pas le job; peut être appelé à plusieurs reprises.
  • POST procède à une lecture de la réponse du job et supprime le job s'il est terminé.
  • DELETE est appelé pour nettoyer manuellement la file d'attente du job.

    Note

    Quand la file d'attente du job est pleine, il expulsera le job le plus ancien de la mémoire automatiquement, sans avoir besoin d'appeler DELETE.

Exemple 14.19. Wait / Nowait

Les opérations GET et POST permettent de définir une durée d'attente maximum, par les paramètres de demande wait et nowait. Si le paramètre wait n'est pas spécifié, l'opération aura par défaut nowait=true, et n'attendra pas si le job n'est pas terminé. Le paramètre wait est défini en millisecondes.
POST http://example.com/asynch/jobs/122?wait=3000

Exemple 14.20. Le Paramètre Oneway

RESTEasy supporte «fire and forget jobs» (abandonner les jobs) avec le paramètre de requête oneway.
POST http://example.com/myservice?oneway=true
L'exemple ci-dessus retournera la réponse 202 Accepted, mais aucun job ne sera créé.