Ho un'applicazione web in elisir che assomiglia a questoCaching calcolo costoso in elisir
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
Ogni volta che inviare una richiesta GET
-/randomElement
, expensiveComputation
viene chiamato. La funzione expensiveComputation
richiede molto tempo per l'esecuzione ma restituisce la stessa cosa ogni volta che viene chiamato. Qual è il modo più semplice per memorizzare nella cache il risultato in modo che venga eseguito una sola volta all'avvio?