gpt4 book ai didi

database - servlet/数据库 : how to do fine-grained database connection and statement management (not bound to servlet lifetime)

转载 作者:搜寻专家 更新时间:2023-10-30 23:19:37 24 4
gpt4 key购买 nike

问题/环境

我的 Web 应用程序的目标是成为我们公司数据库的便捷接口(interface)。

我正在使用:

  • Scalatra (作为最小网络框架)
  • Jetty (作为 servlet 容器)
  • SBT (简单构建工具)
  • JDBC (与数据库接口(interface))

其中一个要求是每个用户都可以管理多个并发查询,并且即使他/她注销,查询也会继续运行并可以在以后检索(或者检查它们的完成状态,如果它们停止任何原因)。

我想查询可能必须在它们自己的单独线程中运行。

我什至不确定这个问题是否正交于连接池(我肯定会使用它,BoneCP 和 C3PO 看起来不错)。

总结

简而言之:我需要对数据库请求的生命周期进行非常细粒度的控制,并且它们不能绑定(bind)到 servlet 生命周期

有哪些方式可以满足我的要求?我在 google 和 stack overflow 上搜索了很多,但没有找到任何可以解决我的问题的东西,这有可能吗?

最佳答案

您的堆栈中缺少的是调度程序。例如 http://www.quartz-scheduler.org/

粗略的解释:

  • 您的连接池(例如 C3P0)将绑定(bind)到应用程序的生命周期。
  • 您的 servlet 将向调度器发送查询请求(这些将与请求查询的用户相关联)。
  • 调度程序将通过使用连接池中的连接尽快执行查询。它还可以按同步/序列化顺序(针对每个用户)执行此操作。
  • 用户将能够看到与他相关的所有查询请求,可能还有状态(待处理、已完成并有结果等)。

关于database - servlet/数据库 : how to do fine-grained database connection and statement management (not bound to servlet lifetime),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8133391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com