java - 如何强制客户端仅在调用端点(A)的特定时间后才调用端点(B)
问题描述
我在休息控制器中有两个端点(A&B)。我正在寻找一种方法,我只能在调用端点 A 的特定时间之后才能调用端点 B。换句话说,如果有人在调用端点 B(获取休息方法)之前调用端点 B(获取休息方法),我想抛出异常端点 A(post restmethod),因此端点 A 有足够的时间来完成其任务。
解决方案
您没有开箱即用的解决方案,因为这是一个非常特殊的要求。
使用数据库,尤其是诸如 Redis 之类的键值轻量级数据库应该可以优雅地解决您的问题,因为它还提供了以下expire
功能:
设置密钥超时。超时后,密钥将被自动删除。在 Redis 术语中,具有关联超时的键通常被称为 volatile。
您将只有要定义的密钥及其到期时间。
Map<String, Instant>
在 the或另一个 bean 中使用 aA RestController
可能很诱人,但我们应该避免这种方式,因为它会将数据保存在服务器内存本身上。服务器应该保持无状态,以使其能够水平扩展。
推荐阅读
- azure-web-app-service - CognitiveServices.Speech Blazor 服务器在发布到 Azure 时不工作
- amazon-web-services - 是否需要附加任何其他策略才能为 aws glue databrew 创建角色?
- python - 从文本分隔符插入数据 | 在 python 脚本中将文件写入 SQL Server 表
- javascript - 为什么momentjs给出错误的结果
- python - 缺少 1 个必需的位置参数:“循环”
- python - 在 Kivy 的 API 30 (Android 11) 中读取和写入文件
- jquery - 如何在数组中添加多个链接搜索条件
- c# - MoveWindow 和 SetWindowPos 都会导致不正确的窗口位置/大小
- javascript - 在 React 中使用 props 输入导出数组
- apache-kafka - 如何在 Kafka 中启动 mongodb 的工作连接器?