def delay()

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
    }
  }