Exemple #1
0
            /// <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);
            }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        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);
        }