Tôi có một ứng dụng web trong elixir trông như thế nàyCaching tính toán đắt tiền trong elixir
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
Bất cứ khi nào tôi đưa ra một yêu cầu GET
-/randomElement
, expensiveComputation
được gọi. Các chức năng expensiveComputation
mất một thời gian dài để chạy nhưng trả về cùng một điều mỗi khi nó được gọi là. Cách đơn giản nhất để lưu trữ kết quả để nó chỉ chạy một lần khi khởi động là gì?