/// <summary> /// need to think about how kill this checking thread; /// </summary> public override void Excute() { _precache.Clear(); var job = new LruTimeoutJob(_precache, _checkInterval); Scheduler.Schedule(job); }
/// <summary> /// /// </summary> /// <param name="threshold"> over it in time interval will be pushed into cache </param> /// <param name="capacity"></param> /// <param name="loader">laod value by key <see cref="ILoader{Tkey, TValue}"/></param> /// <param name="checkInterval"><see cref="LruTimeoutJob"/> will clear precache every interval</param> public JasmineLruCache(byte threshold, int capacity, ILoader <Tkey, Tvalue> loader, int checkInterval) { Capacity = capacity; _threshold = threshold; _loader = loader ?? throw new ArgumentNullException(nameof(loader)); _scheduler = new JasmineTimeoutScheduler(new TimeoutJobManager(2), 1); _scheduler.Start(); var job = new LruTimeoutJob(_precache, checkInterval); _scheduler.Schedule(job); }
public LruFileCache(byte threshold, long maxMemoryUsage, int checkInterval, IFileLoader loader) { MaxMemoryUsage = maxMemoryUsage; _threshold = threshold; _loader = loader ?? throw new ArgumentNullException(nameof(loader)); _scheduler = new JasmineTimeoutScheduler(new TimeoutJobManager(2), 1); _scheduler.Start(); var job = new LruTimeoutJob(_precache, checkInterval); _scheduler.Schedule(job); }