Java web应用程序的并发数据库访问模式
我正在尝试在Weblogic服务器上编写一个SpringWeb应用程序,该应用程序可以进行几个独立的数据库选择(即,可以安全地并发调用),其中一个选择需要15分钟才能执行 获取所有结果后,将向用户列表发送一封包含结果的电子邮件 解决这个问题的好办法是什么?是否有一个Spring库可以提供帮助,或者我是否继续创建守护进程线程来完成这项工作 编辑:这必须在应用层(业务需求)完成,电子邮件将由web应用程序发送Java web应用程序的并发数据库访问模式,java,database,spring,Java,Database,Spring,我正在尝试在Weblogic服务器上编写一个SpringWeb应用程序,该应用程序可以进行几个独立的数据库选择(即,可以安全地并发调用),其中一个选择需要15分钟才能执行 获取所有结果后,将向用户列表发送一封包含结果的电子邮件 解决这个问题的好办法是什么?是否有一个Spring库可以提供帮助,或者我是否继续创建守护进程线程来完成这项工作 编辑:这必须在应用层(业务需求)完成,电子邮件将由web应用程序发送 你确定你每件事都做得很好吗?15分钟是一段很长的时间,除非您在几十个表中有大量的行,并且需
如果您询问Spring对长时间运行、可能是异步任务的支持,您可以在Spring JMS和Spring之间进行选择。您可以使用Spring quartz来安排作业。这样,作业将在同一个容器中运行,但不需要http请求来触发它们。你说的“15分钟”是指
15秒吗?你担心的问题是读取数据,还是长时间运行的请求,或者两者都有?其中一个需要15分钟才能执行。
真的很慢,“那里有些东西运行效率不高。@Nishant,15分钟,肯定。是的,那真的很长。@hvgotcodes,更多关于长时间运行的请求,但实际上两者都很长。1。老实说,我不确定每件事都做得很好,但我无法控制数据库。我得到了一组固定的SQL语句来调用,所以我关心的是如何解决这个需求,并使其在应用程序级别工作。2.电子邮件作业是从我的web应用程序调用的。3.添加另一个JMS队列订阅者将花费太长的进程(我在这里工作),所以我想我剩下的唯一答案是后台线程,正如您所说的,后台线程很容易出错。谢谢。@russell,您应该在Web应用程序之外运行处理作业。为什么不采用“将作业请求放在表中,并使用一个简单的守护进程ping它来处理新作业”的方法呢?唯一的障碍是我无权为此创建表。还是你说的更形象?我确信这里的专家们推荐的是最好的方法,但就我而言,我可能需要一个解决办法。@russell,是的,这是个障碍。你可以向负责人建议。通过指出这种方法的优点和其他方法的缺点来推销它。你只是想尽量减少风险,最大限度地提高可维护性……我来试试。谢谢你的建议。谢谢!我也在调查这件事。我可能想看看批次。非常感谢。