Пример #1
0
        public void Start()
        {
            //先清理状态
            _queueDict.Clear();
            _scheduleService.StopTask("QueueService.RemoveConsumedQueueIndex");
            _scheduleService.StopTask("QueueService.RemoveExceedMaxCacheQueueIndex");

            //再重新加载状态
            var queues      = _queueStore.LoadAllQueues();
            var queueGroups = queues.GroupBy(x => x.Topic);

            foreach (var queue in queues)
            {
                var key = CreateQueueKey(queue.Topic, queue.QueueId);
                _queueDict.TryAdd(key, queue);
            }

            _scheduleService.StartTask("QueueService.RemoveConsumedQueueIndex", RemoveConsumedQueueIndex, BrokerController.Instance.Setting.RemoveConsumedQueueIndexInterval, BrokerController.Instance.Setting.RemoveConsumedQueueIndexInterval);
            _scheduleService.StartTask("QueueService.RemoveExceedMaxCacheQueueIndex", RemoveExceedMaxCacheQueueIndex, BrokerController.Instance.Setting.RemoveExceedMaxCacheQueueIndexInterval, BrokerController.Instance.Setting.RemoveExceedMaxCacheQueueIndexInterval);
        }