diff --git a/lib/cesium_link/links.ex b/lib/cesium_link/links.ex index d26dc35..f903b3c 100644 --- a/lib/cesium_link/links.ex +++ b/lib/cesium_link/links.ex @@ -64,14 +64,26 @@ defmodule CesiumLink.Links do """ def list_unarchived_links_by_index do - case CesiumLink.Standalone.get("links") do - nil -> + case safe_get_from_redis("links") do + {:ok, nil} -> links = list_unarchived_links_by_index_from_db() CesiumLink.Standalone.put("links", links) links - links -> + {:ok, links} -> links + + {:error, _reason} -> + list_unarchived_links_by_index_from_db() + end + end + + defp safe_get_from_redis(key) do + try do + {:ok, CesiumLink.Standalone.get(key)} + rescue + exception -> + {:error, exception} end end diff --git a/lib/cesium_link/redis_cache.ex b/lib/cesium_link/redis_cache.ex index e71029d..7f49a6b 100644 --- a/lib/cesium_link/redis_cache.ex +++ b/lib/cesium_link/redis_cache.ex @@ -1,4 +1,7 @@ defmodule CesiumLink.Standalone do + @moduledoc """ + Standalone redis cache. + """ use Nebulex.Cache, otp_app: :safira, adapter: NebulexRedisAdapter