【问题标题】:Play Framework - Saving object state across multiple callsPlay Framework - 跨多个调用保存对象状态
【发布时间】:2015-01-09 11:08:00
【问题描述】:

我有戏!具有多个路由的框架 (2.3.7) 应用程序:

/api/set_x
/api/set_y
/api/set_z
/api/launch

每个调用都会在MyObject 的实例中设置一个属性。 当/api/launch 被调用时,MyObject 的实例被验证,如果一切正常,它将被持久化,并返回 200 OK 给用户。

如何在多个调用中保持实例的状态,直到调用 /api/launch

  1. 使用会话似乎很糟糕,因为在游戏中会话只是一个 cookie,限制为 4KB。
  2. 使用缓存 - 如果缓存被驱逐,我将无法再次重建实例,这意味着用户可以提供所有属性,但在调用 /api/launch 之前缓存被驱逐并且一个错误的请求而不是 OK 将退回给用户。

有没有优雅的方式在 Play 中实现这样的事情?

【问题讨论】:

    标签: java rest session playframework-2.0


    【解决方案1】:

    没有针对您的问题的最佳解决方案,它主要取决于特定的用例。要在请求之间保留数据,您有三种可能的选择:

    • Play 的会话或 cookie
    • 一些缓存层
    • 一个数据库

    Play 框架的主要特性之一是在服务器端无状态,在设计应用程序时应始终牢记这一点。因此,如果您正在寻找“优雅”的解决方案,答案很简单——没有这样的。这完全取决于具体情况。

    【讨论】:

    • 所以我想我可以将它们保存到数据库中,并确保我有一个调度程序来删除该数据库中的旧条目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多