From e988a8c121c630bea3d48d4fd749fcfdd7f56043 Mon Sep 17 00:00:00 2001 From: Leeingnyo Date: Mon, 30 Aug 2021 22:53:30 +0900 Subject: [PATCH] Add config for sorted entries cache optional --- src/config.cr | 2 ++ src/library/cache.cr | 8 +++++++- src/mango.cr | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/config.cr b/src/config.cr index 332a159..0647aee 100644 --- a/src/config.cr +++ b/src/config.cr @@ -20,6 +20,8 @@ class Config property plugin_path : String = File.expand_path "~/mango/plugins", home: true property download_timeout_seconds : Int32 = 30 + property sorted_entries_cache_enable = false + property sorted_entries_cache_capacity_kbs = 51200 property disable_login = false property default_username = "" property auth_proxy_header_name = "" diff --git a/src/library/cache.cr b/src/library/cache.cr index 1d2dd53..959e0eb 100644 --- a/src/library/cache.cr +++ b/src/library/cache.cr @@ -178,10 +178,16 @@ end # LRU Cache class SortedEntriesCache - @@limit : Int128 = Int128.new 1024 * 1024 * 50 # 50MB + @@limit : Int128 = Int128.new 0 # key => entry @@cache = {} of String => SortedEntriesCacheEntry + def self.init + enabled = Config.current.sorted_entries_cache_enable + cache_size = Config.current.sorted_entries_cache_capacity_kbs + @@limit = Int128.new cache_size * 1024 if enabled + end + def self.gen_key(book_id : String, username : String, entries : Array(Entry), opt : SortOptions?) sig = Digest::SHA1.hexdigest (entries.map &.id).to_s diff --git a/src/mango.cr b/src/mango.cr index e8d32a3..9b58d50 100644 --- a/src/mango.cr +++ b/src/mango.cr @@ -55,6 +55,7 @@ class CLI < Clim Config.load(opts.config).set_current # Initialize main components + SortedEntriesCache.init Storage.default Queue.default Library.default