当前位置: 首页 > 知识库问答 >
问题:

有限源上的无功流对未来事件保持开放

杜经艺
2023-03-14

我使用Spring Webflux、Spring Data和Project Reactor实现非阻塞I/O(Spring Boot 2.0.0.M7)。

我的目标是创建一个类似股票报价器的API,允许客户机根据某些标准从endpoint请求所有资源,并接收在初始请求后创建的新资源。Reactive MongoDB是支持存储。基本的handlerfunction实现如下所示。

Mono<ServerResponse> getFoos(ServerRequest request) {
    ok().contentType(TEXT_EVENT_STREAM)
            .body(fooRepository.findAll(), Foo)
}

显然,这只是返回当前可用的所有foos,然后发布者关闭连接,并且不向客户端发送新的foos。我的问题是使用什么模式来添加一个可以接受新条目的无限流?

  1. 与一些全局发布服务器bean连接,我在创建时编写新的foos
  2. 添加重新订阅存储oncomplete(带有一些筛选重复条目的条件)
  3. 使用repeat并让客户端过滤重复项
  4. 其他吗?

共有1个答案

柴增
2023-03-14

如果您相应地配置了MongoDB集合(必须对其进行封顶),则可以使用tailable游标来实现您想要的目标,只需在存储库上添加一个@tailable注释。请参阅关于无限流的Spring Data MongoDB参考文档。

 类似资料:
  • 我们正在努力计算 1 分钟翻滚时间窗口内不同类型的事件的最大并发计数。 这些事件就像传感器数据,这些数据是从我们的桌面代理每分钟收集的,然而,一些代理得到了一个错误的时间戳,比如说,它甚至比现在晚了几个小时。 所以,我的问题是如何处理/删除这些事件,目前我只是应用过滤器(s = 我的第一个问题是,如果我不这样做,我怀疑这个坏的“未来”事件会触发窗口计算,即使是那些不完整的数据窗口 第二个问题是,我

  • 我的服务代码如下所示, 在我的AKKA HTTP路由中,我尝试从返回的未来构建,如下所示, 我不确定如何提交给响应。被传递的未来实质上是一系列预期按顺序执行的平面映射的未来。但是,我不相信这会作为分块字节流返回到客户端。 然而,我只得到最后一个未来的结果如下, 亲切地问候Meeraj

  • 为什么会这样?如果我在“assigntimestamps(timestampExtractor)”之前添加“keyby(keySelector)”,那么程序可以工作。有人能解释一下原因吗?

  • 问题内容: 我是网络编程的新手。我有兴趣通过Java服务器和C客户端之间的套接字建立网络连接并保持连接无限打开的可能吗?我想保持连接打开状态以在客户端之间交换XML数据。 问题答案: 从理论上讲,可以无限期地打开服务器套接字;但是,使用客户端套接字是不可能的。主要原因是因为客户端套接字取决于处理数据的服务器端套接字,并且服务器套接字可能会关闭连接。 尽管可以无限期地保持连接打开,但实际情况通常会确

  • 我有一个流系统,在这里我可以获得点击流数据。 数据格式: 我怎样才能做到这一点呢?基本上,我必须维护窗口中所有事件的状态,然后,一旦我获得事件,我必须从该状态获取价格。我并不要求任何工作解决方案,只是要求如何维护窗口中所有事件的状态。我也有一些自定义的Reduce操作。 在:我将2个事件数据加入到列表中。