Я пытаюсь написать конструкцию, которая позволяет мне выполнять вычисления в заданное время окно. Примерно так:
def expensiveComputation(): Double = //... some intensive math
val result: Option[Double] = timeLimited( 45 ) { expensiveComputation() }
Здесь timeLimited
запустит ownComputation
с таймаутом 45 минут. По истечении времени ожидания возвращается None
, иначе результат помещается в Some
.
Я ищу решение, которое:
Есть предложения?
ИЗМЕНИТЬ
Я понимаю, что моя исходная проблема не имеет решения. Скажем, я могу создать поток для расчета (но я предпочитаю не использовать пул потоков / исполнитель / диспетчер). Какой самый быстрый, безопасный и чистый способ сделать это?