Я пытаюсь понять, как создать аспект @Around для приостановленной функции Kotlin (например, для измерения времени, потраченного на эту функцию, или для пользовательского аспекта @Transactional):
@Timed("my-timer")
suspend fun test() {
println("before")
delay(50) // invokes ProceedingJoinPoint#proceed() before this line
println("after")
}
Поскольку эта функция имеет вызов функции приостановки, функция продолжения аспекта @Around будет вызываться непосредственно перед вызовом delay (). Но, очевидно, я хотел бы измерить полное время, проведенное в функции.
Как правильно ее решить? Может быть, я могу как-то подписаться на последнее продолжение в методе, или что-то в этом роде?