Exemple #1
0
 private static void InitRedisQueue(MessageQueueSection section)
 {
     SlaveMessageQueue = section.SlaveMessageQueue;
     TraceLog.ReleaseWriteDebug("Redis write queue start init...");
     if (_queueWatchTimers != null && (!section.EnableRedisQueue || _queueWatchTimers.Length != section.DataSyncQueueNum))
     {
         foreach (var timer in _queueWatchTimers)
         {
             try
             {
                 timer.Dispose();
             }
             catch (Exception ex)
             {
                 TraceLog.WriteError("Redis write queue stop error:{0}", ex);
             }
         }
         _queueWatchTimers = null;
     }
     _enableRedisQueue = section.EnableRedisQueue;
     if (_enableRedisQueue && _queueWatchTimers == null)
     {
         _isRedisSyncWorking = new int[section.DataSyncQueueNum];
         _queueWatchTimers   = new Timer[_isRedisSyncWorking.Length];
         for (int i = 0; i < _queueWatchTimers.Length; i++)
         {
             _queueWatchTimers[i] = new Timer(OnCheckRedisSyncQueue, i, 100, 100);
         }
     }
 }
        /// <summary>
        /// 开启初始化监听处理
        /// </summary>
        public static void Start()
        {
            TraceLog.ReleaseWriteDebug("Sql write queue start init...");
            MessageQueueSection section = GetSection();

            SlaveMessageQueue = section.SlaveMessageQueue;
            if (_queueWatchTimers != null && _queueWatchTimers.Length != section.SqlSyncQueueNum)
            {
                foreach (var timer in _queueWatchTimers)
                {
                    try
                    {
                        timer.Dispose();
                    }
                    catch (Exception ex)
                    {
                        TraceLog.WriteError("Sql write queue stop error:{0}", ex);
                    }
                }
                _queueWatchTimers = null;
            }
            if (_queueWatchTimers == null)
            {
                _isWatchWorking   = new int[section.SqlSyncQueueNum];
                _queueWatchTimers = new Timer[_isWatchWorking.Length];
                for (int i = 0; i < _queueWatchTimers.Length; i++)
                {
                    _queueWatchTimers[i] = new Timer(OnCheckSqlSyncQueue, i, 100, 100);
                }
                //_threadPools = new SmartThreadPool(180 * 1000, 100, 5);
                //_threadPools.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();
        }
 private static void OnConfigReload(object sender, ConfigReloadedEventArgs e)
 {
     try
     {
         MessageQueueSection section = GetSection();
         InitRedisQueue(section);
         InitSqlQueue(section);
         DbConnectionProvider.Initialize();
     }
     catch (Exception ex)
     {
         TraceLog.WriteError("ConfigReload error:{0}", ex);
     }
 }
Exemple #5
0
 private static void InitSqlQueue(MessageQueueSection section)
 {
     TraceLog.ReleaseWriteDebug("Sql wait write queue start init...");
     if (_sqlWaitTimers != null && (!section.EnableWriteToDb || _sqlWaitTimers.Length != section.SqlWaitSyncQueueNum))
     {
         foreach (var timer in _sqlWaitTimers)
         {
             try
             {
                 timer.Dispose();
             }
             catch (Exception ex)
             {
                 TraceLog.WriteError("Sql wait write queue stop error:{0}", ex);
             }
         }
         _sqlWaitTimers = null;
     }
     else if (_sqlWaitTimers != null && section.EnableWriteToDb)
     {
         foreach (var timer in _sqlWaitTimers)
         {
             timer.Change(100, section.SqlSyncInterval);
         }
         SqlStatementManager.Start();
     }
     _enableWriteToDb = section.EnableWriteToDb;
     if (_enableWriteToDb && _sqlWaitTimers == null)
     {
         _isSqlWaitSyncWorking = new int[section.SqlWaitSyncQueueNum];
         _sqlWaitTimers        = new Timer[_isSqlWaitSyncWorking.Length];
         for (int i = 0; i < _sqlWaitTimers.Length; i++)
         {
             _sqlWaitTimers[i] = new Timer(OnCheckSqlWaitSyncQueue, i, 100, section.SqlSyncInterval);
         }
         SqlStatementManager.Start();
     }
 }