this repo has no description

limit cache load up so we dont get too big

Changed files
+8 -3
lib
bookmarker
+8 -3
lib/bookmarker/cache.ex
··· 11 11 @bookmarks_table :bookmarks_cache 12 12 @tags_table :tags_cache 13 13 @tag_bookmarks_table :tag_bookmarks_cache 14 + @max_bookmarks 1000 14 15 15 16 # Client API 16 17 ··· 33 34 """ 34 35 def get_bookmarks_by_tag(tag_name) do 35 36 case :ets.lookup(@tag_bookmarks_table, tag_name) do 36 - [{^tag_name, bookmarks}] -> bookmarks 37 + [{^tag_name, bookmarks}] -> Enum.take(bookmarks, @max_bookmarks) 37 38 [] -> [] 38 39 end 39 40 end ··· 94 95 95 96 defp initialize_cache do 96 97 # Cache recent bookmarks 97 - bookmarks = Bookmarks.list_recent_bookmarks(100) 98 + bookmarks = Bookmarks.list_recent_bookmarks(@max_bookmarks) 98 99 :ets.insert(@bookmarks_table, {:recent, bookmarks}) 99 100 100 101 # Cache all tags ··· 104 105 # Cache bookmarks by tag 105 106 Enum.each(tags, fn tag -> 106 107 bookmarks = Bookmarks.list_bookmarks_by_tag(tag.name) 108 + |> Enum.take(@max_bookmarks) 107 109 :ets.insert(@tag_bookmarks_table, {tag.name, bookmarks}) 108 110 end) 109 111 end ··· 116 118 :add -> 117 119 [bookmark | bookmarks] 118 120 |> Enum.sort_by(& &1.inserted_at, {:desc, NaiveDateTime}) 119 - |> Enum.take(100) 121 + |> Enum.take(@max_bookmarks) 120 122 121 123 :update -> 122 124 bookmarks 123 125 |> Enum.map(fn b -> if b.id == bookmark.id, do: bookmark, else: b end) 124 126 |> Enum.sort_by(& &1.inserted_at, {:desc, NaiveDateTime}) 127 + |> Enum.take(@max_bookmarks) 125 128 126 129 :remove -> 127 130 bookmarks ··· 145 148 :add -> 146 149 [bookmark | bookmarks] 147 150 |> Enum.sort_by(& &1.inserted_at, {:desc, NaiveDateTime}) 151 + |> Enum.take(@max_bookmarks) 148 152 149 153 :update -> 150 154 bookmarks 151 155 |> Enum.map(fn b -> if b.id == bookmark.id, do: bookmark, else: b end) 152 156 |> Enum.sort_by(& &1.inserted_at, {:desc, NaiveDateTime}) 157 + |> Enum.take(@max_bookmarks) 153 158 154 159 :remove -> 155 160 bookmarks