有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java快速多线程在线处理应用框架建议

我正在寻找一种模式和/或框架,它可以以一种易于配置的方式对以下问题进行建模

每隔3分钟,我需要在web应用程序上下文中启动一组作业,这些作业将同时访问web服务以获取最新版本的数据,并将其推送到数据库。问题是,数据库将被大量用于从中读取数据,以便对数据进行大量复杂的计算。我们目前正在使用spring,所以我一直在关注spring批处理来运行此过程。有人对使用spring或类似系统的其他技术有任何建议/模式/示例吗


共 (3) 个答案

  1. # 1 楼答案

    我认为还值得研究像camel-integration这样的框架。还可以看看所谓的企业集成模式。查看catalog——它可能会为您提供一些有用的词汇来思考手头的扩展/调度问题

    框架本身与Spring集成得非常好

  2. # 2 楼答案

    将工作从web应用程序重构为独立应用程序是否可行

    通过这种方式,您可以将批处理作业粘贴到单独的批处理服务器上(这样,批处理作业的额外负载不会影响您的web应用程序),然后该服务器调用web服务并更新数据库。然后可以使用cron或Autosys之类的工具启动该任务

    我们使用Spring Batch正是为了这个目的

    数据库设计还取决于批处理数据的用途。如果是出于报告目的,我建议将操作数据库与报告数据库分离,使用数据库链接将所需数据从操作数据库获取到报告数据库,然后在报告数据库上运行复杂的查询。这样,负载就从运行数据库中转移出去了

  3. # 3 楼答案

    我们已经使用ServletContextlisteners在web应用程序中启动TimerTask,当我们需要重复运行进程时。ServletContextListener在应用程序服务器启动应用程序或应用程序重新启动时启动。然后,计时器任务就像一个单独的线程,在指定的时间段内重复代码

    ServletContextListener http://www.javabeat.net/examples/2009/02/26/servletcontextlistener-example/

    TimerTask http://enos.itcollege.ee/~jpoial/docs/tutorial/essential/threads/timer.html