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

时间:2011-02-09 17:38:36

标签: java database spring

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

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

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

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

3 个答案:

答案 0 :(得分:1)

  1. 你确定你做的最好吗? 15分钟是一段很长的时间,除非你在几十张桌子上有大量的行并且需要一个heckofalot连接....这是你的最高优先级 - 为什么需要这么长时间?

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

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

答案 1 :(得分:0)

如果您询问Spring对长期运行,可能是异步任务的支持,您可以选择Spring JMS support和Spring Batch

答案 2 :(得分:0)

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