/// <summary> /// Start /// </summary> /// <param name="setting"></param> /// <param name="serializer"></param> public static void Start(CacheSetting setting, ICacheSerializer serializer) { _serializer = serializer; _entityQueueTimer = new Timer(OnEntitySyncQueue, null, 60, 500); _entityQueueWacher = new Timer(CheckEntityQueue, null, 60, 60000); _queueWatchTimers = new Timer[DataSyncQueueNum]; for (int i = 0; i < DataSyncQueueNum; i++) { _queueWatchTimers[i] = new Timer(OnCheckRedisSyncQueue, i, 100, 100); } _threadPools = new SmartThreadPool(180 * 1000, 100, 5); _threadPools.Start(); _enableWriteToDb = setting.EnableWriteToDb; if (_enableWriteToDb) { int sqlSyncInterval = ConfigUtils.GetSetting("Game.Cache.UpdateDbInterval", 300 * 1000); _sqlWaitTimers = new Timer[SqlWaitSyncQueueNum]; for (int i = 0; i < SqlWaitSyncQueueNum; i++) { _sqlWaitTimers[i] = new Timer(OnCheckSqlWaitSyncQueue, i, 100, sqlSyncInterval); } SqlStatementManager.Start(); } }
/// <summary> /// Start /// </summary> /// <param name="setting"></param> /// <param name="serializer"></param> public static void Start(CacheSetting setting, ICacheSerializer serializer) { _serializer = serializer; //_threadPools = new SmartThreadPool(180 * 1000, 100, 5); _entityQueueTimer = new Timer(OnEntitySyncQueue, null, 60, 100); MessageQueueSection section = GetSection(); InitRedisQueue(section); InitSqlQueue(section); //_threadPools.Start(); }
/// <summary> /// Initialize cache. /// </summary> /// <param name="dbTransponder">db trans object</param> /// <param name="redisTransponder">redis trans object</param> /// <param name="setting">setting.</param> /// <param name="serializer"></param> public static void Initialize(ITransponder dbTransponder, ITransponder redisTransponder, CacheSetting setting, ICacheSerializer serializer) { _readonlyPools = new CachePool(dbTransponder, redisTransponder, true, serializer); _writePools = new CachePool(dbTransponder, redisTransponder, false, serializer) { Setting = setting }; EntitySchemaSet.InitSchema(typeof(EntityHistory)); DataSyncQueueManager.Start(setting, serializer); InitListener("__CachePoolListener", setting.ExpiredInterval, "__CachePoolUpdateListener", setting.UpdateInterval); if (setting.AutoRunEvent) { StartListener(); } }
/// <summary> /// Initialize cache. /// </summary> public static void Initialize(CacheSetting setting, ICacheSerializer serializer) { Initialize(new DbTransponder(), new RedisTransponder(), setting, serializer); }
protected override void OnStartAffer() { try { var setting = new EnvironmentSetting(); setting.EntityAssembly = Assembly.Load("GameRanking.Model"); setting.ScriptStartBeforeHandle += () => { ScriptEngines.AddReferencedAssembly("GameRanking.Model.dll"); ActionFactory.SetActionIgnoreAuthorize(1000, 1001); }; var cacheSetting = new CacheSetting(); cacheSetting.ChangedHandle += OnChangedNotify; GameEnvironment.Start(setting, cacheSetting); Console.WriteLine("The server is staring..."); } catch (Exception ex) { TraceLog.WriteError("App star error:{0}", ex); } }
/// <summary> /// The game service start. /// </summary> /// <param name="setting">Environment setting.</param> /// <param name="cacheSetting">Cache setting.</param> public static void Start(EnvironmentSetting setting, CacheSetting cacheSetting) { if (_isRunning == 1) return; _setting = setting; if (!RedisConnectionPool.CheckConnect()) { string error = string.Format("Error: the redis server is not started."); Console.WriteLine(error); TraceLog.WriteError(error); return; } DbConnectionProvider.Initialize(); EntitySchemaSet.CacheGlobalPeriod = _setting.CacheGlobalPeriod; EntitySchemaSet.CacheUserPeriod = _setting.CacheUserPeriod; if (_setting.EntityAssembly != null) { ProtoBufUtils.LoadProtobufType(_setting.EntityAssembly); EntitySchemaSet.LoadAssembly(_setting.EntityAssembly); } EntitySchemaSet.StartCheckTableTimer(); ZyGameBaseConfigManager.Intialize(); //init script. if (_setting.ScriptSysAsmReferences.Length > 0) { ScriptEngines.AddSysReferencedAssembly(_setting.ScriptSysAsmReferences); } ScriptEngines.AddReferencedAssembly("ZyGames.Framework.Game.dll"); if (_setting.ScriptAsmReferences.Length > 0) { ScriptEngines.AddReferencedAssembly(_setting.ScriptAsmReferences); } ScriptEngines.RegisterModelChangedBefore(OnModelChangeBefore); ScriptEngines.RegisterModelChangedAfter(OnModelChangeAtfer); ScriptEngines.Initialize(); Language.SetLang(); CacheFactory.Initialize(cacheSetting); Global = new ContextCacheSet<CacheItem>("__gameenvironment_global"); Interlocked.Exchange(ref _isRunning, 1); }
/// <summary> /// The game service start. /// </summary> /// <param name="setting">Environment setting.</param> public static void Start(EnvironmentSetting setting) { CacheSetting cacheSetting = new CacheSetting(); cacheSetting.ChangedHandle += EntitySyncManger.OnChange; Start(setting, cacheSetting); }
/// <summary> /// The game service start. /// </summary> /// <param name="setting">Environment setting.</param> /// <param name="cacheSetting">Cache setting.</param> public static void Start(EnvironmentSetting setting, CacheSetting cacheSetting) { if (IsRunning) return; TraceLog.WriteLine("{0} Server is starting...", DateTime.Now.ToString("HH:mm:ss")); _setting = setting; if (!RedisConnectionPool.Ping("127.0.0.1")) { string error = string.Format("Error: NIC is not connected or no network."); TraceLog.WriteLine(error); TraceLog.WriteError(error); return; } RedisConnectionPool.Initialize(_setting.Serializer); if (!RedisConnectionPool.CheckConnect()) { string error = string.Format("Error: the redis server is not started."); TraceLog.WriteLine(error); TraceLog.WriteError(error); return; } DbConnectionProvider.Initialize(); EntitySchemaSet.CacheGlobalPeriod = _setting.CacheGlobalPeriod; EntitySchemaSet.CacheUserPeriod = _setting.CacheUserPeriod; if (_setting.EntityAssembly != null) { ProtoBufUtils.LoadProtobufType(_setting.EntityAssembly); EntitySchemaSet.LoadAssembly(_setting.EntityAssembly); } ZyGameBaseConfigManager.Intialize(); //init script. if (_setting.ScriptSysAsmReferences.Length > 0) { ScriptEngines.AddSysReferencedAssembly(_setting.ScriptSysAsmReferences); } ScriptEngines.AddReferencedAssembly("ZyGames.Framework.Game.dll"); if (_setting.ScriptAsmReferences.Length > 0) { ScriptEngines.AddReferencedAssembly(_setting.ScriptAsmReferences); } ScriptEngines.RegisterModelChangedBefore(OnModelChangeBefore); ScriptEngines.RegisterModelChangedAfter(OnModelChangeAtfer); ScriptEngines.OnLoaded += OnScriptLoaded; ScriptEngines.Initialize(); Language.SetLang(); CacheFactory.Initialize(cacheSetting, _setting.Serializer); EntitySchemaSet.StartCheckTableTimer(); Global = new ContextCacheSet<CacheItem>("__gameenvironment_global"); }
/// <summary> /// Start /// </summary> /// <param name="setting"></param> public static void Start(CacheSetting setting) { _queueWatchTimers = new Timer[DataSyncQueueNum]; for (int i = 0; i < DataSyncQueueNum; i++) { _queueWatchTimers[i] = new Timer(OnCheckRedisSyncQueue, i, 100, 100); } _threadPools = new SmartThreadPool(180 * 1000, 100, 5); _threadPools.Start(); _enableWriteToDb = setting.EnableWriteToDb; if (_enableWriteToDb) { int sqlSyncInterval = ConfigUtils.GetSetting("Game.Cache.UpdateDbInterval", 300 * 1000); _sqlWaitTimers = new Timer[SqlWaitSyncQueueNum]; for (int i = 0; i < SqlWaitSyncQueueNum; i++) { _sqlWaitTimers[i] = new Timer(OnCheckSqlWaitSyncQueue, i, 100, sqlSyncInterval); } SqlStatementManager.Start(); } }
/// <summary> /// Initialize cache. /// </summary> /// <param name="dbTransponder">db trans object</param> /// <param name="redisTransponder">redis trans object</param> /// <param name="setting">setting.</param> public static void Initialize(ITransponder dbTransponder, ITransponder redisTransponder, CacheSetting setting) { _readonlyPools = new CachePool(dbTransponder, redisTransponder, true); _writePools = new CachePool(dbTransponder, redisTransponder, false) { Setting = setting }; RedisConnectionPool.Initialize(); EntitySchemaSet.InitSchema(typeof(EntityHistory)); _entitySync.Start(); InitListener("__CachePoolListener", setting.ExpiredInterval, "__CachePoolUpdateListener", setting.UpdateInterval); if (setting.AutoRunEvent) { StartListener(); } }
/// <summary> /// The game service start. /// </summary> /// <param name="setting">Environment setting.</param> /// <param name="cacheSetting">Cache setting.</param> public static void Start(EnvironmentSetting setting, CacheSetting cacheSetting) { _setting = setting; DbConnectionProvider.Initialize(); EntitySchemaSet.CacheGlobalPeriod = _setting.CacheGlobalPeriod; EntitySchemaSet.CacheUserPeriod = _setting.CacheUserPeriod; if (_setting.EntityAssembly != null) { ProtoBufUtils.LoadProtobufType(_setting.EntityAssembly); EntitySchemaSet.LoadAssembly(_setting.EntityAssembly); } EntitySchemaSet.StartCheckTableTimer(); LoadGameEntitySchema(); ZyGameBaseConfigManager.Intialize(); CacheFactory.Initialize(cacheSetting); Global = new ContextCacheSet<CacheItem>("__gameenvironment_global"); //init script. ScriptEngines.AddReferencedAssembly("ZyGames.Framework.Game.dll"); ScriptEngines.RegisterModelChangedBefore(OnModelChangeBefore); ScriptEngines.RegisterModelChangedAfter(OnModelChangeAtfer); _setting.OnScriptStartBefore(); ScriptEngines.Initialize(); Interlocked.Exchange(ref _isRunning, 1); }