Пример #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="eventargs"></param>
        protected virtual void DoChangedNotify(AbstractEntity sender, CacheItemEventArgs eventargs)
        {
            EntityChangedNotifyEvent handler = OnChangedNotify;

            if (handler != null)
            {
                handler(sender, eventargs);
            }
        }
Пример #2
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="cacheInterval"></param>
        /// <param name="loadDataFactory"></param>
        /// <param name="expiredInterval">定时清理过期缓存时间</param>
        /// <param name="entityAssembly">数据实体的程序集</param>
        /// <param name="changedHandle"></param>
        public static void Start(int cacheInterval, Func<bool> loadDataFactory, int expiredInterval = 600, Assembly entityAssembly = null, EntityChangedNotifyEvent changedHandle = null)
        {
            bool result = false;
            DbConnectionProvider.Initialize();
            EntitySchemaSet.CacheGlobalPeriod = CacheGlobalPeriod;
            EntitySchemaSet.CacheUserPeriod = CacheUserPeriod;
            ZyGameBaseConfigManager.Intialize();
            CacheFactory.Initialize(expiredInterval, cacheInterval, true, changedHandle);
            SensitiveWordService.LoadSchema();
            if (entityAssembly != null)
            {
                ProtoBufUtils.LoadProtobufType(entityAssembly);
                EntitySchemaSet.LoadAssembly(entityAssembly);
            }
            ScriptEngines.SetPythonDebug = ConfigUtils.GetSetting("Python_IsDebug", false);
            ScriptEngines.AddReferencedAssembly("ZyGames.Framework.Game.dll");
            EntitySchemaSet.StartCheckTableTimer();
            Global = new ContextCacheSet<CacheItem>("__gameenvironment_global");

            if (loadDataFactory != null)
            {
                result = loadDataFactory();
            }
            ScriptEngines.Initialize();

            if (result)
            {
                Interlocked.Exchange(ref _isRunning, 1);
            }
        }