Exemple #1
0
        /// <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();
        }
Exemple #3
0
        /// <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();
            }
        }
Exemple #4
0
 /// <summary>
 /// Initialize cache.
 /// </summary>
 public static void Initialize(CacheSetting setting, ICacheSerializer serializer)
 {
     Initialize(new DbTransponder(), new RedisTransponder(), setting, serializer);
 }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
        /// <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);
        }
Exemple #7
0
 /// <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);
 }
Exemple #8
0
        /// <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();
     }
 }
Exemple #10
0
        /// <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();
            }
        }
Exemple #11
0
 /// <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);
 }