|

窗口程序集名 | 保 留 | 保 留 | 备 注 | mysql链接程序集 | | | | 变量名 | 类 型 | 数组 | 备 注 | 连接池监控线程 | 整数型 | | 连接池启动 | 逻辑型 | | 获取线程锁 | 整数型 | |
连接池启动 = 假 强制结束线程 (连接池监控线程 )删除进入许可证 (获取线程锁 ) 计次循环首 (取数组成员数 (连接池 ), b ) 如果真 (连接池 [b ].连接id ≠ 0 ) 关闭MySql (连接池 [b ].连接id )  连接池 [b ].空闲状态 = 假   计次循环尾 ()日志 (“连接池已销毁!”)返回 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | c | 整数型 | | | 已连接 | 整数型 | | | 需连接 | 整数型 | | | 临时id | 整数型 | | | 重定义数组 (连接池, 假, 最大连接池数量 )需连接 = 取整 (最大连接池数量 ÷ 2 ) 循环判断首 () 临时id = 连接MySql (数据库IP, 数据库账号, 数据库密码, 数据库名, 数据库端口 ) 如果 (临时id ≠ 0 )  已连接 = 已连接 + 1   连接池 [已连接 ].连接id = 临时id   连接池 [已连接 ].空闲状态 = 真   连接池 [已连接 ].最后调用时间 = 取现行时间 ()  连接池 [已连接 ].是否临时连接 = 假  日志 (“连接池[” + 到文本 (已连接 ) + “]创建成功,连接ID:” + 到文本 (临时id ))  日志 (“连接池创建失败,正在重试...”)  循环判断尾 (已连接 < 需连接 )日志 (“连接池已创建完成,当前连接池连接数:” + 到文本 (已连接 )) 获取线程锁 = 创建进入许可证 ()连接池启动 = 真 启动线程 (&连接池监控, 30, 连接池监控线程 )返回 (真)变量名 | 类 型 | 静态 | 数组 | 备 注 | 等待期 | 整数型 | | | n | 整数型 | | | 活跃间隔 | 整数型 | | |
判断循环首 (连接池启动 ) 程序_延时 (60000, ) 等待期 = 等待期 + 1  如果真 (等待期 ≥ 检查间隔 )  等待期 = 0   计次循环首 (取数组成员数 (连接池 ), n )   如果真 (连接池 [n ].空闲状态 = 真)    活跃间隔 = 取时间间隔 (取现行时间 (), 连接池 [n ].最后调用时间, #分钟 )    如果真 (活跃间隔 ≥ 120 )    启动线程 (&活跃连接, n, )           计次循环尾 ()  判断循环尾 ()返回 ()执行SQL语句 (连接池 [连接序号 ].连接id, “SELECT 1”)连接池 [连接序号 ].最后调用时间 = 取现行时间 ()返回 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | n | 整数型 | | | 连接句柄 | 整数型 | | | 临时id | 整数型 | | | C | 整数型 | | | 进入许可区 (获取线程锁 )连接句柄 = 0 循环判断首 () 计次循环首 (取数组成员数 (连接池 ), n )  如果真 (连接池 [n ].空闲状态 = 真)   连接池 [n ].空闲状态 = 假    连接句柄 = 连接池 [n ].连接id   跳出循环 ()    计次循环尾 () 如果真 (连接句柄 = 0 )  计次循环首 (取数组成员数 (连接池 ), C )   如果真 (连接池 [C ].连接id = 0 )    循环判断首 ()     临时id = 连接MySql (数据库IP, 数据库账号, 数据库密码, 数据库名, 数据库端口 )    循环判断尾 (临时id ≠ 0 )    连接池 [C ].连接id = 临时id     连接池 [C ].空闲状态 = 假     连接池 [C ].是否临时连接 = 真     连接池 [C ].最后调用时间 = 取现行时间 ()      计次循环尾 ()  连接句柄 = 临时id  日志 (“由于连接池连接数不足,已临时创建连接线程,连接id:” + 到文本 (连接句柄 ))   循环判断尾 (连接句柄 = 0 )退出许可区 (获取线程锁 )返回 (连接句柄 ) 计次循环首 (取数组成员数 (连接池 ), C ) 如果真 (连接池 [C ].连接id = 连接句柄 )  如果真 (连接池 [C ].是否临时连接 = 真)  关闭MySql (连接句柄 )  日志 (“临时mysql连接已被关闭,连接ID:” + 到文本 (连接句柄 ))    连接池 [C ].连接id = 真    连接池 [C ].是否临时连接 = 假  连接池 [C].空闲状态 = 真  计次循环尾 ()返回 ()
简易版的,适合新手学习,也请大神提出一些建议和优化的地方!
|
|