Пример #1
0
        public static DependencyBase PrepareDependency()
        {
            if (false == File.Exists(InnerCacheHelper.cacheDependenceFile))
            {
                lock (InnerCacheHelper.syncFile)
                {
                    if (false == File.Exists(InnerCacheHelper.cacheDependenceFile))
                    {
                        File.Create(InnerCacheHelper.cacheDependenceFile);
                    }
                }
            }

            TimeSpan        ts     = new TimeSpan(0, 1, 0);
            MixedDependency result = new MixedDependency(
                new FileCacheDependency(InnerCacheHelper.cacheDependenceFile),
                new SlidingTimeDependency(new TimeSpan(AccreditSection.GetConfig().AccreditSettings.CacheSlideMinutes *ts.Ticks)));

            return(result);
        }
Пример #2
0
        public static UserSettings GetSettings(string userID)
        {
            userID.CheckStringIsNullOrEmpty("userID");

            UserSettings result = UserSettingsCache.Instance.GetOrAddNewValue(userID, (cache, key) =>
            {
                UserSettings settings = LoadSettings(userID);

                MixedDependency mixedDependency = new MixedDependency(
                    new UdpNotifierCacheDependency(),
                    new UserRecentDataCacheItemDependency(),
                    new MemoryMappedFileNotifierCacheDependency());

                cache.Add(key, settings, mixedDependency);

                return(settings);
            });

            return(result);
        }
Пример #3
0
        /// <summary>
        /// 根据用户ID和Category获取指定的配置
        /// </summary>
        /// <param name="userID"></param>
        /// <returns></returns>
        public static UserRecentDataCategory GetSettings(string userID, string category)
        {
            userID.CheckStringIsNullOrEmpty("userID");
            category.CheckStringIsNullOrEmpty("category");

            var result = UserRecentDataCategoryCache.Instance.GetOrAddNewValue(new UserRecentDataCategoryCacheKey(userID, category), (cache, key) =>
            {
                var categoryData = LoadSettings(key.UserId, key.Category);

                MixedDependency mixedDependency = new MixedDependency(
                    new UdpNotifierCacheDependency(),
                    new UserRecentDataCacheItemDependency(),
                    new MemoryMappedFileNotifierCacheDependency());

                cache.Add(key, categoryData, mixedDependency);

                return(categoryData);
            });

            return(result);
        }