in src/main/scala/com/gu/ssm/utils/attempt/Attempt.scala [158:170]
def delay(delay: FiniteDuration)(implicit ctx: ExecutionContext): Attempt[Unit] = {
val timer = new Timer()
val prom = Promise[Unit]()
val unitTask = new TimerTask {
def run(): Unit = {
ctx.execute(() => prom.complete(util.Success(())))
}
}
timer.schedule(unitTask, delay.toMillis)
Attempt.fromFuture(prom.future) {
case NonFatal(e) => Failure("failed to run delay task", "Internal error while delaying operations", ErrorCode, e).attempt
}
}