/// <summary> /// /// </summary> /// <param name="configInfo"></param> public ActiveMqdlqMqListenerService(MqInstanceInfo configInfo) { _logger = LoggerFactory.GetLog(); ClientId = ProcessLockHelper.GetProcessLockId() + "_MqId:" + configInfo.MqInstanceId; ServiceName = "Mq监听服务" + ClientId; _configInfo = configInfo; Started += OnStarted; Stoping += OnStoping; }
private void AddService(MqInstanceInfo instanceInfo) { if (!IsRunning) { return; } var service = new MqListenerService(_listenerAppId, instanceInfo); if (_serviceList.TryAdd(instanceInfo.MqInstanceId, service)) { service.QuqueDispatch += ServiceOnQuqueDispatch; service.TopicDispatch += ServiceOnTopicDispatch; service.Start(); _excuteInfoDictionary.TryAdd(service.ClientId, new ExcuteInfo()); } else { service.Dispose(); } }
/// <summary> /// 更新配置信息 /// </summary> /// <param name="configInfo"></param> public void UpdateConfig(MqInstanceInfo configInfo) { bool isReflesh = _configInfo.Port != configInfo.Port || _configInfo.MqttPort != configInfo.MqttPort || !string.Equals(_configInfo.IpAddress, configInfo.IpAddress, StringComparison.OrdinalIgnoreCase) || !string.Equals(_configInfo.AccessPassword, configInfo.AccessPassword) || !string.Equals(_configInfo.AccessUsername, configInfo.AccessUsername); if (isReflesh) { _configInfo.IpAddress = configInfo.IpAddress; _configInfo.Port = configInfo.Port; _configInfo.AccessPassword = configInfo.AccessPassword; _configInfo.AccessUsername = configInfo.AccessUsername; _configInfo.MqttPort = configInfo.MqttPort; } _configInfo.ExpiredTime = configInfo.ExpiredTime; _configInfo.DelFalg = configInfo.DelFalg; if (isReflesh) { Restart(); } }