Я хочу отправить 1000 записей одновременно в пакете c из 500. Как только они будут отправлены, я хочу, чтобы хвостовая рекурсия продолжалась. numberOfEventsPerSecond = 1000 putRecordLimit = 500 sendInBatches вызывается до завершения вызова furure. Есть ли способ, которым сначала будет завершен вызов futureCall, затем вызывается только sendInBatches.
@scala.annotation.tailrec
final def sendBatches(
buffer: Seq[File],
numberOfEventsPerSecond: Int
): Seq[PutRecordsRequestEntry] =
{
val (listToSend, remaining) = buffer.splitAt(numberOfEventsPerSecond)
val listRes = listToSend
.grouped(putRecordLimit)
.toList
.filter(_.nonEmpty)
listRes.map { list =>
futureCall(list.filter(_ != null)) map { putDataResult =>
println("Sent")
)
}
}
sendInBatches(fileOption, remaining, numberOfEventsPerSecond)
}