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