Oℕ
Size: a a a
Oℕ
Oℕ
Oℕ
Oℕ
Oℕ
Oℕ
EK
ΛВ
EK
def withMonitoring[R, E, A](task: ZIO[R, E, A], tag: String, monitorInterval: Duration = 20.minutes): ZIO[R with Clock, E, A] = {
zio.clock.nanoTime.flatMap(start => {
val monitorOnce: ZIO[Clock, Nothing, Any] = zio.clock.nanoTime.flatMap(now =>
UIO {
val dur = Duration.fromNanos(now - start)
logger.info(s"$tag is running for ${dur.render} so far")
}
)
val runMonitoring = monitorOnce.delay(monitorInterval).forever
task.raceFirst(runMonitoring)
})
}
D
D
ΛВ
АК
АК
АК
АК
S🐉
K
SA
N