我有连续的信号接收流。我想为此流创建一个超时。仅在30秒后才应显示输出。 如何让流中的流超时?
预先感谢
我尝试了分组操作。无济于事。
答案 0 :(得分:0)
您可以为此使用delay
流。例如:
Source(...).delay(3.seconds, DelayOverflowStrategy.backpressure).runForeach(...)
答案 1 :(得分:0)
为解决此问题,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)
希望这会有所帮助。