Кеширование дорогих вычислений в эликсире
У меня есть веб-приложение в эликсире, которое выглядит так
defmodule Test do
use Plug.Router
plug :match
plug :dispatch
def expensiveComputation() do
// performs an expensive computation and
// returns a list
end
get "/randomElement" do
randomElement = expensiveComputation() |> Enum.random
send_resp(conn, 200, randomElement)
end
end
Всякий раз, когда я выпускаюGET
запросить/randomElement
, expensiveComputation
вызывается.expensiveComputation
функция занимает много времени, но возвращает одно и то же при каждом вызове. Какой самый простой способ кэшировать результат, чтобы он запускался только один раз при запуске?