【问题标题】:Common resource (almost stateful) object (bean) (no HTTP session related) in Play Framework?Play Framework中的公共资源(几乎是有状态的)对象(bean)(与HTTP会话无关)?
【发布时间】:2021-05-09 22:02:19
【问题描述】:

我有一个外部库,它需要很长的初始化时间(大约 2 分钟),我需要在 Play Framework Controller-Action 处理的几乎每个 HTTP 请求中调用它。是否存在实例化此类 Scala 对象的机制(例如,放入某个全局范围、某个配置 bean、某个专用缓存)并根据 Controller-Action 中的请求检索它?

此对象不是完全有状态的对象。它是有状态的,意思是它需要一些复杂的初始化。但是当它准备好并运行时,它是无状态的——它可以在任何时间处理任何请求(当然,一些排队可能是必要的,但我可以用一些技巧来实现它),从这个意义上说,它是公共资源。

我的 Play 应用程序是纯无状态 API,因此没有 HTTP 会话。我正在考虑在 Play 中使用 Spring(我猜是可能的),但是 Spring 会话范围与 HTTP 会话和 servlet 相关,因此,这不是解决方案。

我还没有设法在 Play 中找到使用 J2EE 会话 bean 的用例,也许那是不可能的。

我正在阅读有关 Play 框架的 ThreadPools 和配置工具的信息,但目前我对 Play 框架能否拥有这样的 statful/preinitialized/common-resource 持怀疑态度。

上下文:提到的公共资源是相当重的数学库,可以做一些人工智能/自动推理,我计划使用 Play 框架围绕它创建 API,然后使用 Python 机器学习脚本中的这个 API。

【问题讨论】:

    标签: spring playframework stateful-session-bean


    【解决方案1】:

    我正在考虑使用缓存 API https://www.playframework.com/documentation/2.8.x/ScalaCache。当我能够报告我的努力结果时,我会进一步扩展我的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 2019-01-24
      相关资源
      最近更新 更多