java - Web 应用程序的并发数据库访问模式

标签 java database spring

我正在尝试在 Weblogic 服务器上编写一个 Spring Web 应用程序,该应用程序生成多个独立的数据库 SELECT(即它们可以安全地同时调用),其中一个需要 15 分钟才能执行。

获取所有结果后,包含结果的电子邮件将发送到用户列表。

解决这个问题的好方法是什么?是否有 Spring 库可以提供帮助,或者我是否继续创建守护线程来完成这项工作?

编辑:这必须在应用层(业务需求)完成,并且电子邮件将由 Web 应用程序发送出去。

最佳答案

  1. 你确定你做的每件事都是最佳的吗? 15 分钟是一段很长的时间,除非您在数十个表中有数十亿行并且需要大量的连接……这是您的最高优先级——为什么要花这么长时间?

  2. 您是按设定的时间间隔发送电子邮件,还是从您的网络应用调用?如果设置间隔,您应该在外部工作中进行,可能在另一台机器上进行。您可以使用守护进程或 quartz 调度程序。

  3. 如果您需要从网络应用程序中触发此过程,则需要异步执行。您可以使用 JMS,或者您可以只拥有一个表,您可以在其中输入新的工作请求,使用每隔 X 时间段查找新工作的守护进程。关闭后台线程是可能的,但它容易出错并且不值得复杂化,特别是因为您有其他更简单的有效选项。

关于java - Web 应用程序的并发数据库访问模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4948417/

相关文章:

java - 在对象中存储对象

java - mvc调用服务层方法

java - 在 Java 中获取友好 url 后面的文件名

java - 使用 MouseListener 选择网格中的一系列单元格

database - 短语 "creating the DDL"是误用吗?

database - 在 Cloudant 中记录输出

database - EF 代码优先建模将如何影响数据库中已有的数据

spring - 为什么 Intellij 会向我显示有关我的 Spring 配置文件的警告?

java - 如何在列注释中设置默认值

java - 实现DoublyLinkedList时出现StackOverflow错误