Ejemplo n.º 1
0
        /// <summary>
        /// 分布式缓存客户端开启
        /// </summary>
        public static void Start()
        {
            //_cacheNameList = DistributedCacheManage.GetCacheNameList();//本节点的客户端缓存名列表和服务端缓存列表必须一致

            //客户端订阅分布式缓存
            SubscribeServiceObject ssObject = new SubscribeServiceObject();

            ssObject.publishServiceName = publishServiceName;
            ssObject.ProcessService     = ((ClientLink _clientLink) =>
            {
                List <CacheIdentify> ciList = DistributedCacheClient.GetCacheIdentifyList(); //获取本地缓存索引
                List <CacheObject> coList = _clientLink.GetDistributedCacheData(ciList);     //比对上级中间件缓存,返回差异的缓存对象
                if (coList.Count > 0)
                {
                    //调试
                    //foreach (var i in coList)
                    //{
                    //    if(i.cachename== "mnodeplugin")
                    //    {
                    //        foreach(var n in i.cacheValue)
                    //        {
                    //            CoreFrame.Common.MiddlewareLogHelper.WriterLog(n.key);
                    //            CoreFrame.Common.MiddlewareLogHelper.WriterLog(n.value);
                    //        }
                    //    }
                    //}

                    DistributedCacheClient.SetCacheObjectList(coList);//将差异的缓存对象同步到本节点中间件
                }
            });
            SubscriberManager.Subscribe(ssObject);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 订阅服务
        /// </summary>
        /// <param name="ssObject"></param>
        public static void Subscribe(SubscribeServiceObject ssObject)
        {
            if (ssObject == null)
            {
                return;
            }

            if (ssoList.FindIndex(x => x.publishServiceName == ssObject.publishServiceName) == -1)
            {
                ServerManage.SuperClient.superClientLink.Subscribe(ssObject.publishServiceName);
                ssoList.Add(ssObject);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 取消订阅服务
        /// </summary>
        /// <param name="publishServiceName"></param>
        public static void UnSubscribe(string publishServiceName)
        {
            if (string.IsNullOrEmpty(publishServiceName))
            {
                return;
            }
            if (ssoList.FindIndex(x => x.publishServiceName == publishServiceName) == -1)
            {
                return;
            }
            ServerManage.SuperClient.superClientLink.UnSubscribe(publishServiceName);
            SubscribeServiceObject ssObject = ssoList.Find(x => x.publishServiceName == publishServiceName);

            ssoList.Remove(ssObject);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 客户端接收通知
        /// </summary>
        /// <param name="publishServiceName">订阅服务名称</param>
        /// <param name="_clientLink">客户端连接</param>
        public static void ReceiveNotify(string publishServiceName, ClientLink _clientLink)
        {
            ShowHostMsg(Color.Blue, DateTime.Now, "收到订阅的“" + publishServiceName + "”服务通知!");
            if (ssoList.FindIndex(x => x.publishServiceName == publishServiceName) == -1)
            {
                return;
            }
            //执行订阅服务
            SubscribeServiceObject ssObject = ssoList.Find(x => x.publishServiceName == publishServiceName);

            if (ssObject.ProcessService != null)
            {
                new Action(delegate()
                {
                    //异步执行
                    ssObject.ProcessService(_clientLink);
                }).BeginInvoke(null, null);
            }
        }
Ejemplo n.º 5
0
        private static string publishServiceName = "UpgradeManage";//订阅服务名

        /// <summary>
        /// 分布式缓存客户端开启
        /// </summary>
        public static void Start()
        {
            rootpath = AppGlobal.AppRootPath + "FileStore\\";
            //创建客户端升级包目录
            if (!Directory.Exists(rootpath + clientupgrade))
            {
                Directory.CreateDirectory(rootpath + clientupgrade);
            }
            //创建Web程序升级包目录
            if (!Directory.Exists(rootpath + webupgrade))
            {
                Directory.CreateDirectory(rootpath + webupgrade);
            }
            //创建中间件程序升级包目录
            if (!Directory.Exists(rootpath + mnodeupgrade))
            {
                Directory.CreateDirectory(rootpath + mnodeupgrade);
            }
            //创建插件服务程序升级包目录
            if (!Directory.Exists(rootpath + pluginupgrade))
            {
                Directory.CreateDirectory(rootpath + pluginupgrade);
            }

            //客户端订阅分布式缓存
            SubscribeServiceObject ssObject = new SubscribeServiceObject();

            ssObject.publishServiceName = publishServiceName;
            ssObject.ProcessService     = ((ClientLink _clientLink) =>
            {
                //DownLoadUpgrade(clientupgrade + "update.xml", clientupgrade + "update.zip", _clientLink);
                //DownLoadUpgrade(webupgrade + "update.xml", webupgrade + "update.zip", _clientLink);
                //DownLoadUpgrade(mnodeupgrade + "update.xml", mnodeupgrade + "update.zip", _clientLink);
                //下载插件
                //DownLoadPlugin(_clientLink);

                //UpgradeManage.UpdateUpgrade();//通知下级中间件升级
            });
            SubscriberManager.Subscribe(ssObject);
        }