我目前有一个tomcat容器 - 在其上运行的servlet侦听请求。我需要将HTTP请求的结果提交给作业队列,然后再进行异步处理。我希望每个“工作”在数据库中连续保存,以便在出现故障时进行跟踪和恢复。我一直在做很多的阅读。这里是我的选择(注意,我必须使用开源的东西来处理所有事情)。来自Servlet的Java中的异步处理
1)JMS - 使用ActiveMQ的(但谁是作业的消费者在这种情况下另一个servlet)
2)有我的要求创建一个数据库中的行?在我的Tomcat容器中有一个独立的servlet,它始终运行 - 它使用Quartz Scheduler或java.util.concurrent中提供的实用程序来持续处理作为作业的行(使用线程池)。
我倾向于后者,因为查看JMS文档让我头疼,而我知道它是一个更强大的解决方案,我需要相对快速地实现这一点。在任何情况下,在部署此服务器的早期阶段,我都没有预料到会有大量的负载。
很多人都说Spring或许对1或2都有好处。但是我从来没有用过Spring,我甚至都不知道如何开始使用它来解决这个问题。任何关于如何在不需要重写我的整个项目的情况下进入的指针都会很有用。
否则,如果你可以衡量选项1或2,那也是有用的。
说明:异步过程将屏幕抓取第三方网站,并向原始请求者发送消息通知。第三方网站有点片面和缓慢,这就是为什么它将作为一个异步过程处理(内置几个重试尝试)。我也将从该网站提取文件并将其存储在S3中。
我还建议春天都为石英调度和JMS消息。它会使代码更简单。 – kgiannakakis 2009-01-31 09:23:30