Track asset cache inserted_at
This commit is contained in:
@@ -1,15 +1,16 @@
|
|||||||
defmodule MusicLibrary.Assets.Cache do
|
defmodule MusicLibrary.Assets.Cache do
|
||||||
def new do
|
def new do
|
||||||
:ets.new(__MODULE__, [:named_table, :public, read_concurrency: true])
|
:ets.new(__MODULE__, [:named_table, :public, :compressed, read_concurrency: true])
|
||||||
end
|
end
|
||||||
|
|
||||||
def set(payload, format, content) do
|
def set(payload, format, content) do
|
||||||
:ets.insert(__MODULE__, {{payload, format}, content})
|
inserted_at = DateTime.utc_now() |> DateTime.to_unix()
|
||||||
|
:ets.insert(__MODULE__, {{payload, format}, inserted_at, content})
|
||||||
end
|
end
|
||||||
|
|
||||||
def get(payload, format) do
|
def get(payload, format) do
|
||||||
case :ets.lookup(__MODULE__, {payload, format}) do
|
case :ets.lookup(__MODULE__, {payload, format}) do
|
||||||
[{{^payload, ^format}, content}] -> {:found, content}
|
[{{^payload, ^format}, _inserted_at, content}] -> {:found, content}
|
||||||
[] -> :not_found
|
[] -> :not_found
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user