如何解决检索数据并等待时间以检查数据库中是否出现了新内容
我想使用Spring和Java8通过剩余端点从内存中的H2数据库检索数据。我有2个端点:一个端点检索数据,第二个端点向数据库添加数据。
如何以最简单的方式实现以下所述?我不确定关于JMS Queue或CompletableFuture的解决方案会更好(如果可能)。该功能只适用于少数用户,他们会调用以检索其ID号下保存的数据。
场景:
- 用户调用休息端点以检索数据。
- 如果数据库中存在数据,则将其检索并返回给用户。
- 如果数据库中不存在数据,则保持连接60秒钟,如果在这段时间内数据库中出现某些内容(通过端点添加以添加新数据),则将返回数据。
- 如果数据库中不存在数据,并且60秒之内不会出现新数据,则端点不返回任何内容。
解决方法
有多种方法可以做到这一点,如果需求明确,我建议采用以下两种方法。
方法1:
- 查找并检索是否有可用数据,而无需等待。
- 如果没有可用的数据,请在标头中设置资源ID和retrieveTime,并响应使用者。
- 基于资源ID,您可以随时使用数据。
- 通过这种方式,您可以确保端点服务时间始终保持一致,并且理想情况下,该时间不应超过3秒。
方法2。
- 如果数据不可用,请在60秒内进入休眠状态(不在数据库连接范围内),然后再次尝试使用同一线程。
- 这里不需要任何队列或ansyc进程。
- 在这里您失去的资源和服务时间将花费更多。
除其他方法外,如果您的系统使用事件处理,那么在记录持续存在时使用事件处理方法,然后将事件发送给使用者(所有数据库都具有将事件发送给源系统的功能)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。