Mam obecnie kontener tomcat - działający na nim serwlet nasłuchujący żądań. Potrzebuję wyniku żądania HTTP, aby zostać przesłane do kolejki zadań, które następnie zostanie przetworzone asynchronicznie. Chcę, aby każda "praca" była utrwalana w wierszu w DB w celu śledzenia i odzyskiwania w przypadku awarii. Dużo czytałem. Oto moje opcje (uwaga: do wszystkiego muszę używać rzeczy open-source).Przetwarzanie asynchroniczne w Javie z serwletu
1) JMS - używać ActiveMQ (ale który jest konsumentem w pracy w tym przypadku inny aplet)
2) Czy moja prośba utworzyć wiersz w DB?. Miej oddzielny serwlet w moim kontenerze Tomcat, który zawsze działa - używa Quartz Scheduler lub narzędzi podanych w java.util.concurrent, aby nieprzerwanie przetwarzać wiersze jako zadania (używa łączenia wątków).
Pochylam się do tego drugiego, ponieważ przeglądanie dokumentacji JMS daje mi ból głowy i chociaż wiem, że jest to solidniejsze rozwiązanie, muszę wdrożyć to stosunkowo szybko. Nie przewiduję dużych ilości obciążenia we wczesnych dniach wdrażania tego serwera w każdym przypadku.
Wiele osób twierdzi, że wiosna może być dobra na 1 lub 2. Jednak nigdy nie użyłem Springa i nie wiedziałbym nawet, jak zacząć go używać, aby rozwiązać ten problem. Wszelkie wskazówki na temat tego, jak nurkować bez konieczności ponownego napisania całego mojego projektu, byłyby użyteczne.
W przeciwnym razie, gdybyś mógł rozważyć opcję 1 lub 2, które również byłyby przydatne.
Wyjaśnienie: Proces asynchroniczny polegałby na zeskanowaniu strony internetowej innej firmy i wysłaniu powiadomienia o wiadomości do pierwotnego requestera. Witryna internetowa strony trzeciej jest nieco niestabilna i powolna, dlatego jest obsługiwana jako proces asynchroniczny (kilka wbudowanych prób). Będę także ściągał pliki z tej strony i zapisywał je w S3.
Polecam również Wiosna zarówno dla Quartz harmonogramów i wiadomości JMS. To znacznie uprości kod. – kgiannakakis