S'il vous plaît un peu de conseil sur ce qui suit:Exécuteur transactionnel avec réessayer?
J'utilise un ThreadPoolTaskExecutor pour exécuter des tâches lentes externes comme l'envoi de courriels.
J'ai besoin d'améliorer ceci: 1) Quand une tâche est passée à l'exeuctor, elle doit attendre son exécution jusqu'à ce que la transaction soit terminée. Exemple: il est illogique d'envoyer un email lorsque le processus de commande échoue et génère une exception qui se produit lors de l'engagement
2) Lorsque la tâche échoue, un nouveau mécanisme est utilisé pour relancer la tâche. Exemple: lors de l'envoi de l'e-mail échoue, il sera réessayé après 5,10 minutes, puis déclenche une exception.
Comment faire face à ces problèmes? de devrais-je intégrer une file d'attente juste offre cette fonctionnalité ..
Ed
Merci pour votre réponse rapide. Donc, basiquement, je n'ai pas besoin de démarrer un serveur de mise en file d'attente "séparé" mais plutôt d'ajouter quelques jar et il commencera automatiquement ... Je veux dire: je n'aime que le printemps et pas d'autres choses à tester simple ... – edbras
Oui. Pour tester, ces choses sont des implémentations d'interfaces qui sont simples à se moquer. L'envoi d'un email est un composant standard dans Camel, il ne nécessite donc pas de tests unitaires, seuls des tests pour vérifier qu'il est correctement configuré. –
Juste une chose: j'ai lu que Camel est très bon dans le trafic de routage. Outre le courrier électronique, je souhaite également exécuter du code (capturé dans un modèle de commande) qui établira une connexion HTTP pour récupérer certaines informations devant être placées dans la base de données locale. Camel est-il également bien adapté à ce type d'opérations? Donc, en gros: faites asynchroniser ces opérations et laissez-les réessayer en cas d'échec ... – edbras