播放忽略继续 100 个请求

Play ignore continue 100 requests

带有针对 POST 请求的操作的播放控制器,可能需要忽略 HTTP Request Automatic Retries 以防止控制器代码被 运行 多次。

在 Play 中执行此操作的最佳方法是什么?

我会推荐以下内容:

  1. 向每个 post 请求添加一个唯一 ID 作为查询字符串的一部分。

  2. 扩展DefaultHttpRequestHandler,如解释here

  3. 在您的扩展中检查这是否是您想要的请求 防止重试并使用 RequestHeader 上的 getQueryString 读取请求的 ID,请参阅文档 here.

  4. 通过查询 Redis 等数据存储来检查您是否已经看到 ID。如果这是您第一次看到它,请将 ID 保存到 Redis。

  5. 如果您已经看到 ID,则丢弃 POST 请求,否则将其转发给路由器。