Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java web应用程序的并发数据库访问模式_Java_Database_Spring - Fatal编程技术网

Java web应用程序的并发数据库访问模式

Java web应用程序的并发数据库访问模式,java,database,spring,Java,Database,Spring,我正在尝试在Weblogic服务器上编写一个SpringWeb应用程序,该应用程序可以进行几个独立的数据库选择(即,可以安全地并发调用),其中一个选择需要15分钟才能执行 获取所有结果后,将向用户列表发送一封包含结果的电子邮件 解决这个问题的好办法是什么?是否有一个Spring库可以提供帮助,或者我是否继续创建守护进程线程来完成这项工作 编辑:这必须在应用层(业务需求)完成,电子邮件将由web应用程序发送 你确定你每件事都做得很好吗?15分钟是一段很长的时间,除非您在几十个表中有大量的行,并且需

我正在尝试在Weblogic服务器上编写一个SpringWeb应用程序,该应用程序可以进行几个独立的数据库选择(即,可以安全地并发调用),其中一个选择需要15分钟才能执行

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

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

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

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

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

  • 如果需要从web应用程序启动此进程,则需要异步执行。您可以使用JMS,也可以只使用一个表,在其中输入一个新的作业请求,并使用每X时间段查找新作业的守护进程。启动后台线程是可能的,但它容易出错,不值得这么复杂,特别是因为您有其他更简单的有效选项


  • 如果您询问Spring对长时间运行、可能是异步任务的支持,您可以在Spring JMS和Spring之间进行选择。

    您可以使用Spring quartz来安排作业。这样,作业将在同一个容器中运行,但不需要http请求来触发它们。

    你说的“15分钟”是指
    15秒吗?你担心的问题是读取数据,还是长时间运行的请求,或者两者都有?
    其中一个需要15分钟才能执行。
    真的很慢,“那里有些东西运行效率不高。@Nishant,15分钟,肯定。是的,那真的很长。@hvgotcodes,更多关于长时间运行的请求,但实际上两者都很长。1。老实说,我不确定每件事都做得很好,但我无法控制数据库。我得到了一组固定的SQL语句来调用,所以我关心的是如何解决这个需求,并使其在应用程序级别工作。2.电子邮件作业是从我的web应用程序调用的。3.添加另一个JMS队列订阅者将花费太长的进程(我在这里工作),所以我想我剩下的唯一答案是后台线程,正如您所说的,后台线程很容易出错。谢谢。@russell,您应该在Web应用程序之外运行处理作业。为什么不采用“将作业请求放在表中,并使用一个简单的守护进程ping它来处理新作业”的方法呢?唯一的障碍是我无权为此创建表。还是你说的更形象?我确信这里的专家们推荐的是最好的方法,但就我而言,我可能需要一个解决办法。@russell,是的,这是个障碍。你可以向负责人建议。通过指出这种方法的优点和其他方法的缺点来推销它。你只是想尽量减少风险,最大限度地提高可维护性……我来试试。谢谢你的建议。谢谢!我也在调查这件事。我可能想看看批次。非常感谢。