Armazenamento em cache da computação cara no elixir
Eu tenho um aplicativo da web no elixir que se parece com isso
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
Sempre que eu emitir umGET
pedido para/randomElement
, expensiveComputation
é chamado. oexpensiveComputation
A função demora muito para ser executada, mas retorna a mesma coisa toda vez que é chamada. Qual é a maneira mais simples de armazenar em cache o resultado para que seja executado apenas uma vez na inicialização?