首页 > 解决方案 > 如何强制客户端仅在调用端点(A)的特定时间后才调用端点(B)

问题描述

我在休息控制器中有两个端点(A&B)。我正在寻找一种方法,我只能在调用端点 A 的特定时间之后才能调用端点 B。换句话说,如果有人在调用端点 B(获取休息方法)之前调用端点 B(获取休息方法),我想抛出异常端点 A(post restmethod),因此端点 A 有足够的时间来完成其任务。

标签: javarestspring-boot

解决方案


您没有开箱即用的解决方案,因为这是一个非常特殊的要求。

使用数据库,尤其是诸如 Redis 之类的键值轻量级数据库应该可以优雅地解决您的问题,因为它还提供了以下expire功能

设置密钥超时。超时后,密钥将被自动删除。在 Redis 术语中,具有关联超时的键通常被称为 volatile。

您将只有要定义的密钥及其到期时间。

Map<String, Instant>在 the或另一个 bean 中使用 aA RestController可能很诱人,但我们应该避免这种方式,因为它会将数据保存在服务器内存本身上。服务器应该保持无状态,以使其能够水平扩展。


推荐阅读