Пример #1
0
        /// <summary>
        /// 更新操作次数
        /// </summary>
        /// <param name="ip"></param>
        /// <param name="Url"></param>
        /// <param name="operateName"></param>
        public void UpdateOperateNums(string ip, string Url, string operateName)
        {
            if (!this.monitorInfo.ContainsKey(ip))
            {
                lock (lockupdateconnnums)
                {
                    if (!this.monitorInfo.ContainsKey(ip))
                    {
                        LinkModel model = new LinkModel();
                        model.ClientIP = ip;
                        model.UrlInfoList = new Dictionary<string, UrlInfo>();
                        UrlInfo url = new UrlInfo();
                        url.ConnNums = 0;
                        url.OperateNums = new Dictionary<string, long>();
                        model.UrlInfoList[Url] = url;

                        this.monitorInfo[ip] = model;
                    }
                }
            }

            lock (lockupdateoperatenums)
            {
                if (!this.monitorInfo[ip].UrlInfoList.ContainsKey(Url))
                {
                    UrlInfo url = new UrlInfo();
                    url.ConnNums = 0;
                    url.OperateNums = new Dictionary<string, long>();
                    this.monitorInfo[ip].UrlInfoList[Url] = url;
                }

                this.monitorInfo[ip].UrlInfoList[Url].OperateNums[operateName] =
                    this.monitorInfo[ip].UrlInfoList[Url].OperateNums.ContainsKey(operateName) ?
                    (this.monitorInfo[ip].UrlInfoList[Url].OperateNums[operateName] == long.MaxValue ? 1 : this.monitorInfo[ip].UrlInfoList[Url].OperateNums[operateName] + 1) : 1;
            }
        }
Пример #2
0
        /// <summary>
        /// 更新某地址的链接数
        /// </summary>
        /// <param name="ip">IP地址</param>
        /// <param name="Url">请求的url绝对地址</param>
        /// <param name="isadd">是否增加,否则就是减</param>
        public void UpdateUrlConnNums(string ip, string Url, bool isadd)
        {
            if (!this.monitorInfo.ContainsKey(ip))
            {
                lock (lockupdateconnnums)
                {
                    if (!this.monitorInfo.ContainsKey(ip))
                    {
                        LinkModel model = new LinkModel();
                        model.ClientIP = ip;
                        model.UrlInfoList = new Dictionary<string, UrlInfo>();
                        UrlInfo url = new UrlInfo();
                        url.ConnNums = 0;
                        url.OperateNums = new Dictionary<string, long>();
                        model.UrlInfoList[Url] = url;

                        this.monitorInfo[ip] = model;
                    }
                }
            }

            if (this.monitorInfo.ContainsKey(ip))
            {
                lock (lockupdateconnnums)
                {
                    if (!this.monitorInfo[ip].UrlInfoList.ContainsKey(Url))
                    {
                        UrlInfo url = new UrlInfo();
                        url.ConnNums = 0;
                        url.OperateNums = new Dictionary<string, long>();
                        this.monitorInfo[ip].UrlInfoList[Url] = url;
                    }

                    if (isadd)
                        this.monitorInfo[ip].UrlInfoList[Url].ConnNums += 1;
                    else
                        this.monitorInfo[ip].UrlInfoList[Url].ConnNums -= 1;

                    //if (this.monitorInfo[ip].UrlInfoList[Url].ConnNums < 0)
                    //    this.monitorInfo[ip].UrlInfoList[Url].ConnNums = 0;
                }
            }
        }