Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何根据流中的时间对元素进行分组?_Scala_Akka Stream - Fatal编程技术网

Scala 如何根据流中的时间对元素进行分组?

Scala 如何根据流中的时间对元素进行分组?,scala,akka-stream,Scala,Akka Stream,我接收到连续不断的信号流。我想为这个流创建一个超时。仅在30秒后显示输出。 如何为来自流的流指定超时 提前谢谢 我尝试了分组操作。没有成功。您可以使用流进行此操作。例如: Source(...).delay(3.seconds, DelayOverflowStrategy.backpressure).runForeach(...) 为了解决这个问题,Akka Streams API使用GroupedIn机制对事件进行分组,但也会在限定的时间范围内发出事件,即使未满足最大事件数。这将导致事件的有

我接收到连续不断的信号流。我想为这个流创建一个超时。仅在30秒后显示输出。 如何为来自流的流指定超时

提前谢谢

我尝试了分组操作。没有成功。

您可以使用流进行此操作。例如:

Source(...).delay(3.seconds, DelayOverflowStrategy.backpressure).runForeach(...)

为了解决这个问题,Akka Streams API使用GroupedIn机制对事件进行分组,但也会在限定的时间范围内发出事件,即使未满足最大事件数。这将导致事件的有效批处理,而不会引入不可接受的延迟

Source.tick(0 milliseconds, 10 milliseconds, ())  
.map(_ => Sample(System.currentTimeMillis(), random.nextFloat()))
.groupedWithin(1000, 100 milliseconds)
.map(database.bulkInsert)
.runWith(Sink.ignore)

希望这能有所帮助。

老实说,我没有完全得到你想要的——延迟、超时或分组。假设“只有在30秒后才会显示输出”,我想你说的只是延迟我对传入流执行操作。这就像搜索传入的数据是正确的。所以我每30秒检查一次信号。如果未找到信号,我们将输出为未找到。这是一项任务,但我无法根据持续时间进行分组。