Switch cache implementation for size limiting.

This commit is contained in:
Roger Braun 2017-04-17 11:36:17 +02:00
commit 6bfd521974
5 changed files with 16 additions and 15 deletions

View file

@ -14,10 +14,11 @@ defmodule Pleroma.Application do
supervisor(Pleroma.Web.Endpoint, []),
# Start your own worker by calling: Pleroma.Worker.start_link(arg1, arg2, arg3)
# worker(Pleroma.Worker, [arg1, arg2, arg3]),
supervisor(ConCache, [[
ttl_check: :timer.seconds(1),
ttl: :timer.seconds(5)
], [name: :users]])
worker(Cachex, [:user_cache, [
default_ttl: 5000,
ttl_interval: 1000,
limit: 500
]])
]
# See http://elixir-lang.org/docs/stable/elixir/Supervisor.html

View file

@ -78,15 +78,12 @@ defmodule Pleroma.User do
end
def get_cached_by_ap_id(ap_id) do
ConCache.get_or_store(:users, "ap_id:#{ap_id}", fn() ->
# Return false so the cache will store it.
Repo.get_by(User, ap_id: ap_id) || false
end)
key = "ap_id:#{ap_id}"
Cachex.get!(:user_cache, key, fallback: fn(_) -> Repo.get_by(User, ap_id: ap_id) end)
end
def get_cached_by_nickname(nickname) do
ConCache.get_or_store(:users, "nickname:#{nickname}", fn() ->
Repo.get_by(User, nickname: nickname) || false
end)
key = "nickname:#{nickname}"
Cachex.get!(:user_cache, key, fallback: fn(_) -> Repo.get_by(User, nickname: nickname) end)
end
end