public void Vistor(QuqueName topicName, MqCommandInfo commandInfo)
 {
     try
     {
         if (commandInfo.MessageType != NMSMessageType.SyncByTableName ||
             string.IsNullOrEmpty(commandInfo.Body))
         {
             return;
         }
         var content = JsonUtils.Deserialize <SyncTableContent>(commandInfo.Body);
         if (content == null ||
             !content.HasData)
         {
             _logger.Error(string.Format("内容解析无效 StoreId: {0} Body:{1}", commandInfo.StoreId, commandInfo.Body));
             return;
         }
         //TODO 上报数据插入数据库
         InsertOrUpdate(content);
     }
     catch (Exception ex)
     {
         //错误处理,缓存到本地文件中
         _cacheManager.AddOnlyFileCache(Guid.NewGuid(), commandInfo);
         _logger.Error(ex, "Vistor");
     }
 }
        public void Vistor(TopicName topicName, MqCommandInfo commandInfo)
        {
            if (topicName != TopicName.PushMessage && commandInfo.MessageType != NMSMessageType.AutoUpdateInfo)
            {
                return;
            }
            var data = JsonUtils.Deserialize <MqAutoUpdateInfo>(commandInfo.Body);

            if (data == null)
            {
                _logger.Error("自动更新数据包无效 Body:" + commandInfo.Body);
                return;
            }
            if (data.AppType != AppType.MqListener)
            {
                _logger.Error("自动更新AppType无效:" + data.AppType.ToString() + " Body:" + commandInfo.Body);
                return;
            }
            var clientId = ProcessLockHelper.GetProcessLockId();

            if (!string.Equals(clientId, data.AppId, StringComparison.OrdinalIgnoreCase))
            {
                _logger.Error("自动更新数据包客户ID不匹配" + data.AppId + " Body:" + commandInfo.Body);
                return;
            }
            AutoUpdaterInfo info = AutoUpdaterInfo.Current;

            UpdateListener(info, data);
        }
示例#3
0
        public void Vistor(QuqueName queueName, MqCommandInfo commandInfo)
        {
            if (queueName != QuqueName.ClientHeart &&
                commandInfo.MessageType != NMSMessageType.Heart &&
                !commandInfo.Properties.ContainsKey(MqConsts.MqDevice))
            {
                return;
            }
            var deviceType = commandInfo.Properties[MqConsts.MqDevice];

            LoggerFactory.GetLog().Error(string.Format("{0}设备心跳包处理", deviceType));
        }
        public void Vistor(QuqueName queueName, MqCommandInfo commandInfo)
        {
            if (queueName != QuqueName.BusinessProcessing &&
                commandInfo.MessageType != NMSMessageType.None &&
                !commandInfo.Properties.ContainsKey(MqConsts.MqDevice))
            {
                return;
            }
            var deviceType = TypeParse.StrToInt(commandInfo.Properties[MqConsts.MqAppType]);

            if (deviceType == 0)
            {
                //不是有效的app类型
                return;
            }
            var data = JsonUtils.Deserialize <MqDeviceRegisterInfo>(commandInfo.Body);

            if (data == null)
            {
                return;
            }
            //App心跳
            //_deviceAccess.Exists(string.Format("StoreId='{0}' AND ", commandInfo.StoreId));
        }
        public void Vistor(QuqueName queueName, MqCommandInfo commandInfo)
        {
            if (queueName != QuqueName.ClientHeart &&
                commandInfo.MessageType != NMSMessageType.Heart &&
                !commandInfo.Properties.ContainsKey(MqConsts.MqAppType))
            {
                return;
            }
            var appType = Utils.GetEnum <AppType>(commandInfo.Properties[MqConsts.MqAppType]);

            if (appType == AppType.Empty)
            {
                //不是有效的app类型
                return;
            }
            var data = JsonUtils.Deserialize <MqHeartbeatInfo>(commandInfo.Body);

            if (data == null)
            {
                return;
            }
            //App心跳
            _listenerService.Heartbeat(commandInfo.StoreId, appType, data);
        }