如何根据流中的时间对元素进行分组?
How to group elements according to time in streams?
我有源源不断的信号接收。我想为这个流创建一个超时。那只是在 30 秒后才显示输出。
如何为流中的流设置超时?
提前致谢
我尝试分组 operations.None 成功了。
您可以为此使用 delay
流程。例如:
Source(...).delay(3.seconds, DelayOverflowStrategy.backpressure).runForeach(...)
为了解决这个问题,Akka Streams API 具有 groupedWithin 机制来对事件进行分组,但也会在有限的时间范围内发出事件,即使未满足最大事件数也是如此。这导致事件的有效批处理,而不会引入不可接受的延迟。
Source.tick(0 milliseconds, 10 milliseconds, ())
.map(_ => Sample(System.currentTimeMillis(), random.nextFloat()))
.groupedWithin(1000, 100 milliseconds)
.map(database.bulkInsert)
.runWith(Sink.ignore)
希望对您有所帮助。
我有源源不断的信号接收。我想为这个流创建一个超时。那只是在 30 秒后才显示输出。 如何为流中的流设置超时?
提前致谢
我尝试分组 operations.None 成功了。
您可以为此使用 delay
流程。例如:
Source(...).delay(3.seconds, DelayOverflowStrategy.backpressure).runForeach(...)
为了解决这个问题,Akka Streams API 具有 groupedWithin 机制来对事件进行分组,但也会在有限的时间范围内发出事件,即使未满足最大事件数也是如此。这导致事件的有效批处理,而不会引入不可接受的延迟。
Source.tick(0 milliseconds, 10 milliseconds, ())
.map(_ => Sample(System.currentTimeMillis(), random.nextFloat()))
.groupedWithin(1000, 100 milliseconds)
.map(database.bulkInsert)
.runWith(Sink.ignore)
希望对您有所帮助。