Mam aplikacji internetowej w eliksiru, który wygląda takbuforowanie drogie obliczeń w eliksiru
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
Ilekroć wydać GET
żądanie /randomElement
, expensiveComputation
jest wywoływana. Funkcja expensiveComputation
długo działa, ale zwraca to samo za każdym razem, gdy jest wywoływana. Jaki jest najprostszy sposób buforowania wyniku, aby był uruchamiany tylko raz podczas uruchamiania?