• 近期服务器挂掉总结


    总结一下以备以后自查: 

    1、在net 4.5  安装去 QuartzNet 定时执行Job   ,导致CPU 和内存一直很高,更新最新版解决

    2、Job 网站缓冲池设置问题导致CPU一直很高,检查发现设置线程数设置过高。

    3、代码问题:random 的使用问题,自己写了一个多少个数中随机获取几个数的方法:

    有人输入10个中取10个导致一直陷在这个方法了导致服务器挂掉。

    修改前

           public static List<int> GetRandomIntList(int total, int pick)
            {
    
                List<int> result = new List<int>();//取出来的数就放到了这个集合里了
                Random rd = new Random();
                for (int i = 0; i < pick; )
                {
                    int a = rd.Next(1, total);
    
                    if (result.Contains(a))
                        continue;
                    result.Add(a);
                    i++;
                }
                return result;
            }

    原因是:一直取不到10,总共也不够十个,所以一直在循环。导致浪费资源。

    修改后:

            /// <summary>
            /// 在total里随机获取pick个数
            /// </summary>
            /// <param name="total"></param>
            /// <param name="pick"></param>
            /// <returns></returns>
            public static List<int> GetRandomIntList(int total, int pick)
            {
                List<int> result = new List<int>();//取出来的数就放到了这个集合里了
                Random rd = new Random();
    
                var scope = pick;
                if (total < pick)
                {
                    scope = total;
                }
                for (int i = 0; i < pick;)
                {
                    int a = rd.Next(1, total + 1);
                    a = a - 1;
                    if (result.Contains(a))
                        continue;
                    result.Add(a);
                    i++;
                }
                return result;
    
    
    
            }
    Next的方法说明:
    可以取得下限取不得上限。
    rd.Next(1, total + 1);代码也可以改成:
    rd.Next(0, total );
    这个适合数组下标使用
    正常使用应该上面第一种。

  • 相关阅读:
    hdu2063:过山车
    牛客网:ph试纸
    牛客网:石子阵列
    最短路
    POJ1067:取石子游戏
    实现DataGridView实时更新数据
    SendMessage API
    使用Intel IPT技术保护您的帐号安全
    它是对 ACME(automated certificate management environment) 协议的实现,只要实现了 ACME 协议的客户端都可以跟它交互。
    time out 超时
  • 原文地址:https://www.cnblogs.com/barnet/p/9632954.html
Copyright © 2020-2023  润新知