J'ai actuellement un conteneur tomcat - servlet fonctionnant en écoute de requêtes. J'ai besoin du résultat d'une requête HTTP pour être une soumission à une file d'attente qui sera ensuite traitée de manière asynchrone. Je veux que chaque «travail» soit conservé de suite dans une base de données pour le suivi et la récupération en cas d'échec. J'ai beaucoup lu. Voici mes options (notez que je dois utiliser des trucs open-source pour tout).Traitement asynchrone en Java à partir d'une servlet
1) JMS - utiliser ActiveMQ (mais qui est le consommateur du travail dans ce cas, une autre servlet)
2) Demandez à ma demande de créer une ligne dans la DB?. Avoir une servlet séparée à l'intérieur de mon conteneur Tomcat qui s'exécute toujours - il utilise Quartz Scheduler ou les utilitaires fournis dans java.util.concurrent pour traiter en continu les lignes comme des tâches (utilise le pool de threads). Je penche pour ce dernier parce que regarder la documentation JMS me donne mal à la tête et même si je sais que c'est une solution plus robuste, j'ai besoin de l'implémenter relativement rapidement. Je ne prévois pas d'énormes quantités de charge dans les premiers jours de déploiement de ce serveur dans tous les cas. Beaucoup de gens disent que le printemps pourrait être bon pour 1 ou 2. Cependant, je n'ai jamais utilisé Spring et je ne sais même pas comment commencer à l'utiliser pour résoudre ce problème. Tout pointeur sur la façon de plonger sans avoir à réécrire tout mon projet serait utile.
Sinon, si vous pesez sur l'option 1 ou 2 qui serait également utile. Clarification: Le processus asynchrone consisterait à filtrer un site Web tiers et à envoyer une notification de message au demandeur d'origine. Le site Web tiers est un peu flou et lent et c'est pourquoi il sera traité comme un processus asynchrone (plusieurs tentatives de tentatives intégrées). Je vais également extraire les fichiers de ce site et les stocker dans S3.
Je vous recommande également de printemps à la fois pour la planification et la messagerie JMS Quartz. Cela rendra le code beaucoup plus simple. – kgiannakakis