/// <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); } }
/// <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); } }