精易论坛

标题: ✅NX线程池,MySql连接池,免费开源码简单超实用稳定 带例程 [打印本页]

作者: jcos    时间: 2024-7-23 21:19
标题: ✅NX线程池,MySql连接池,免费开源码简单超实用稳定 带例程
nx线程池_初版 发布至今,已经是很久很久前的事了

支持的人也不少,私下向我反映的也有不少
自己本身也是在使用
于是。。。它又更新了

功能更强了?
使用更简洁方便了?
更新了啥?
我就不告诉你了,反正在源码中 以及 例程中,有着非常详细的 使用方法

不会用就算了,不要问我哈


源码在此

模块在此

例程在此
我们一起为广大易友做贡献!
补充内容 (2024-11-7 12:34):
最新版已更新至 20241107 请下载新版 https://125.confly.eu.org/forum.php?mod=viewthread&tid=14839441

补充内容 (2025-1-16 19:14):
2025最新版 https://125.confly.eu.org/forum.php?mod=viewthread&tid=14846250

NX_线程连接池_模块.zip

320.76 KB, 下载次数: 120, 下载积分: 精币 -2 枚

模块

NX线程池_MySql连接池_例子.e

1.05 MB, 下载次数: 153, 下载积分: 精币 -2 枚

例程


作者: zxs    时间: 2024-7-24 00:20
感谢分享
作者: HEZ小白    时间: 2024-7-24 00:23
6666666666666666
作者: jiqigouer    时间: 2024-7-24 00:26
谢谢分享了
作者: 冬夏    时间: 2024-7-24 00:28
会崩溃吗
作者: 冬夏    时间: 2024-7-24 00:28

作者: 陈大奶么么哒    时间: 2024-7-24 00:29
666666666666666666666
作者: ythrf    时间: 2024-7-24 00:39
我们一起为广大易友做贡献
作者: WeBox    时间: 2024-7-24 01:14

666666666666666666666
作者: saosao    时间: 2024-7-24 01:16
感谢分享啊
作者: 陌路海岸    时间: 2024-7-24 01:30

感谢分享啊
作者: 小可爱创作生活    时间: 2024-7-24 01:48
我们一起为广大易友做贡献!
作者: ltais    时间: 2024-7-24 02:04
66666666666666
作者: Ctrl0101    时间: 2024-7-24 02:43
我们一起为广大易友做贡献!
作者: lqgod    时间: 2024-7-24 03:15
支持支持支持
作者: dzscuz    时间: 2024-7-24 04:20
我们一起为广大易友做贡献!
作者: Leein    时间: 2024-7-24 06:01
支持开源
作者: wzi    时间: 2024-7-24 07:03
支持66666666666
作者: asfor78    时间: 2024-7-24 07:07
感谢分享啊
作者: 姝妍计算机    时间: 2024-7-24 07:14

感谢分享啊
作者: jxj060    时间: 2024-7-24 07:47
感谢分享
作者: seaser    时间: 2024-7-24 07:50
感谢分享
作者: mytiger    时间: 2024-7-24 08:10
感谢分享~!
作者: 灵海雪缘    时间: 2024-7-24 08:13
好像是好东西啊
作者: Fate    时间: 2024-7-24 08:16
感谢分享
作者: chis777780    时间: 2024-7-24 08:24
感谢分享!支持开源
作者: 大今今    时间: 2024-7-24 08:32
看看.............
作者: 何浩文    时间: 2024-7-24 08:56
开源精神必须支持~
作者: なす随风ぬね    时间: 2024-7-24 08:57
支持一下
作者: Elite    时间: 2024-7-24 08:58
支持一下...
作者: 笔迹    时间: 2024-7-24 08:58
这么好的东西竟然没早点发现。感谢分享。
作者: 五花牛    时间: 2024-7-24 08:59
已经顶贴,感谢您对论坛的支持!
作者: kyo9766    时间: 2024-7-24 09:00
学习一下 MySql连接池,感谢分享
作者: 阿仁同学    时间: 2024-7-24 09:01
666            
作者: ashu180    时间: 2024-7-24 09:05
学习一下 MySql连接池
作者: brave09    时间: 2024-7-24 09:07
NX线程池,MySql连接池,
作者: 123233513    时间: 2024-7-24 09:08
谢谢分享
作者: 123233513    时间: 2024-7-24 09:09
3个文件打包在一起啊,节省点精币
作者: webmaster999    时间: 2024-7-24 09:10
支持开源~!感谢分享
作者: sinewtec    时间: 2024-7-24 09:11
YYDS~!              
作者: 赵小赵    时间: 2024-7-24 09:12
感谢楼主分享!
作者: 123233513    时间: 2024-7-24 09:13
太坑了,下载3个文件,花了17精币
作者: lsq904628573    时间: 2024-7-24 09:35
不错学习一下
作者: pptk    时间: 2024-7-24 09:46
不问,不问,什么都不问。
作者: 没事瞎琢磨    时间: 2024-7-24 09:47

支持开源~!感谢分享
作者: 七夜a    时间: 2024-7-24 09:49
支持开源~!感谢分享
作者: ipkiller    时间: 2024-7-24 10:03
支持开源~!感谢分享
作者: 尛龍科技    时间: 2024-7-24 10:04
非常good呀
作者: a897887419    时间: 2024-7-24 10:12
非常good呀
作者: Tom9633    时间: 2024-7-24 10:23
感谢分享
作者: 不飞    时间: 2024-7-24 10:30
支持开源~!感谢分享
作者: 123233513    时间: 2024-7-24 10:40
.版本 2
.支持库 EThread
.支持库 mysql

.子程序 保持连接, 逻辑型, 公开, mysql心跳,勿间隔大于 wait_timeout 的值,如果不使用此命令,其实在使用过程中断开了会自动连接的,只是会卡几秒进程
.参数 等待时间, 整数型, 可空, (单位:秒)可空,连接数满时,等待多久秒后再取句柄
.局部变量 句柄, 整数型
.局部变量 i, 整数型

.如果真 (类_最大连接 > 0)
    .如果真 (取出句柄 (句柄, 等待时间))  ' 取不出句柄时,可能连接池全部都在使用中,可适当增加连接数或等待时间
        进入许可区 (类_许可证)
        执行SQL语句 (句柄, “SELECT 1”)  ' 心跳
        释放记录集 (取记录集 (句柄))
        归还句柄 (句柄)
        退出许可区 (类_许可证)
    .如果真结束
    返回 (真)
.如果真结束
返回 (假)


2024-7-23 的版本,“保持连接”代码,有Bug,经测试,使用 连接池.保持连接,几次循环后,只有取到了的句柄会保持连接,没有取到的句柄,都会超时。
作者: 石头怪    时间: 2024-7-24 10:40
支持开源~!感谢分享
作者: kenny8848    时间: 2024-7-24 10:42
每次来这里都能发现新大陆,楼主这次又带来了什么好东西?期待揭晓!
作者: cf2006a    时间: 2024-7-24 10:44
好东西,收藏!!
作者: ljx111    时间: 2024-7-24 10:46
感谢分享~
作者: ljx111    时间: 2024-7-24 10:47
感谢分享~~~~~~~~~~~~
作者: perfectmyt    时间: 2024-7-24 10:48
谢谢分享。使用下效果
作者: chris12322    时间: 2024-7-24 10:49
感谢分享~
作者: ensurf    时间: 2024-7-24 10:52
学习一下

作者: sck03    时间: 2024-7-24 10:56
谢谢楼主分享
作者: 2022huan    时间: 2024-7-24 11:03
bucuo
作者: jcos    时间: 2024-7-24 11:05
本帖最后由 jcos 于 2024-7-24 11:56 编辑

保持连接,之前版本是每一个句柄都连接一下,保证所有句柄都在线的(发现有时卡连接),后面改为了单个句柄保持。
其实不用开这么多连接的,我一般开两条就很足用了。(其实我自己也没用到 保持连接 ,毕竟断开会重连
如果长时间不用,会断开,再次使用时会自动连接的,可能在重连时会卡1下,毕竟重新连接要点时间。
如果实在想要把所有句柄都保持的话,稍修改一下就行。
或者修改一下mysql配置文件,把 wait_timeout 值调大一点就行
代码如下
  
子程序名返回值类型公开备 注
保持连接逻辑型 mysql心跳,勿间隔大于 wait_timeout 的值,如果不使用此命令,其实在使用过程中断开了会自动连接的,只是会卡几秒进程
参数名类 型参考可空数组备 注
等待时间整数型(单位:秒)可空,连接数满时,等待多久秒后再取句柄
变量名类 型静态数组备 注
句柄整数型 
如果真 (类_最大连接 > 0)
' ' 每一个句柄都取出来连接一次,其实不用这个也行,断开的连接会自动重连,最好是修改一下mysql配置文件wait_timeout值调大一点
计次循环首 (类_最大连接, )
如果真 (取出句柄 (句柄, 等待时间))  ' ’取不出句柄时,可能连接池全部都在使用中,可适当增加连接数或等待时间
进入许可区 (类_许可证)
执行SQL语句 (句柄, “SELECT 1”)  ' ‘ 心跳
释放记录集 (取记录集 (句柄))
归还句柄 (句柄)
退出许可区 (类_许可证)
处理事件 ()
计次循环尾 ()
返回 ()
返回 ()


i支持库列表   支持库注释   
EThread多线程支持库
mysqlMySql支持库


就是循环取出句柄和执行一下语句了,自行修改吧,我就不改了,毕竟改一次贴子又要审核一次。。。





作者: 不苦小和尚    时间: 2024-7-24 11:38
试试看看效果好不好
作者: 原点╮    时间: 2024-7-24 11:44
NX线程池,MySql连接池,免费开源码简单超实用稳定 带例程
作者: jhlzc    时间: 2024-7-24 11:46
看下。。。。。。。。。。。。。。。。。。。。。。。
作者: 温暖的舌骨    时间: 2024-7-24 11:48

作者: 1425113841    时间: 2024-7-24 11:57
简单看看
作者: 1425113841    时间: 2024-7-24 12:30
本帖最后由 1425113841 于 2024-7-24 12:40 编辑

1.取出连接存在并发问题
2.SQL语句参数拼装没有做参数转义, 存在SQL注入漏洞.
3.连接可以惰性, 没必要饿汉, 无需上来就把池中所有连接给连满, 而应该是在每次执行时, 检查池是否有空闲, 没有空闲就检查是否已满, 没满再创建连接.
4.当发生错误时, 应该提供获取错误方式, 将"取错误文本()"的具体报告向上传递, 以便使用者查看具体错误.
5.执行SQL语句应该是要可以并发执行, 无需增加临界许可, 这样反而退化了池的概念, 跟没池一样
作者: jcos    时间: 2024-7-24 12:47
1425113841 发表于 2024-7-24 12:30
1.取出连接存在并发问题
2.SQL语句参数拼装没有做参数转义, 存在SQL注入漏洞.
3.连接可以惰性, 没必要饿汉, ...


厉害!一针见血!
有空帮我优化下呗,就第二种方式。
第一方式是以旧版本的。

万分感谢!
作者: 精易ぁ小染    时间: 2024-7-24 13:01
        感谢分享,很给力!~
作者: a1221331441    时间: 2024-7-24 13:09
下载shishi@@!!!
作者: dldxdg    时间: 2024-7-24 13:13
感谢分享
作者: 文西哥    时间: 2024-7-24 13:17
感谢大佬的无私奉献
作者: wool6    时间: 2024-7-24 13:38
支持开源~!感谢分享
作者: wuqingg    时间: 2024-7-24 14:00
支持开源~!感谢分享
作者: 邪恶辅助    时间: 2024-7-24 14:01
看起来很厉害,下载我也厉害一下。
作者: abnerll    时间: 2024-7-24 14:15
感谢分享
作者: qinfeng0214    时间: 2024-7-24 14:53
大佬我之前找你改了一版,是配合超级列表框循环使用的,是继续用你之前给我改的还是下载使用新版本
作者: 卡卡1111    时间: 2024-7-24 15:05
感谢分享,很给力!~
作者: 鸿运    时间: 2024-7-24 15:41
感谢分享,很给力!~
作者: aaa548814    时间: 2024-7-24 15:56
感谢分享,很给力!~支持分享
作者: ZHuanR    时间: 2024-7-24 15:57
新技能已get√
作者: Loyal2014    时间: 2024-7-24 16:09
感谢分享,很给力!~支持分享
作者: QurSuiAn    时间: 2024-7-24 16:19
感谢分享,很给力!~
作者: YY阿狸    时间: 2024-7-24 16:23
谢谢分享
作者: qq9211420    时间: 2024-7-24 16:45
66666666666666666666666
作者: QurSuiAn    时间: 2024-7-24 16:51
感谢分享,很给力!~
作者: LiXiaoWen    时间: 2024-7-24 16:54
感谢分享,很给力!~
作者: wb138960    时间: 2024-7-24 17:08
不错支持6666
作者: wanfengCZ    时间: 2024-7-24 17:19
支持远程  MYSQL8.0 的连接吗
作者: 花诗雨露    时间: 2024-7-24 18:24
#在这里快速回复#多线程为什么不支持多参数,你考虑方便群众呀
作者: 曦月    时间: 2024-7-24 19:51
论坛有你更精彩
作者: 1425113841    时间: 2024-7-24 20:39
本帖最后由 1425113841 于 2024-7-24 23:10 编辑

给你上手改进了一下, 发现整体上都写的有问题, 例如明明是类中操作却在操作全局的mysql实例去归还句柄, 这是非常有问题的, 我不知道你是手误写错了还是怎么回事.
而且每一个SQL操作都在加锁, 那这和没线程池有什么区别吗, 你写的很多代码都给我删掉了.
改进源码: NX线程池_MySql连接池.e (63.03 KB, 下载次数: 10)
大概讲一下我的改进内容吧:
1. 池使用FIFO的数据结构进行存储
2. 当连接已断开时, 会丢弃掉连接, 重新创建新的Mysql连接
3. 只要获取句柄成功了, 无论后面语句是否执行成功, 都应该归还连接
4. 惰性连接, 规定线程池的大小在8, 但是实际没有并发访问时, 不会将8个连接一次性创建好, 而是需要的时候, 不够再创建. 如果你只是单线程在使用, 那么线程池不会为你创建多余的TCP连接. 这一点可以通过我给你的测试用例看到前面三条命令执行时, 监控日志只汇报创建了一次TCP连接.
5. 增加SQLValueString函数用于辅助where语句的参数转义, 当发现危险字符没有转义会自动转义
6.执行查询语句时没必要传入表名,这增加了用户会去思考表名的意义,只是一个生成json的字段名而已,随便给个list就可以了。
SQL语句的拼接参考我给出的示例, 这样写可以防止SQL漏洞注入. 想要进行测试记得重新配置好你的sql连接信息, 更改测试中的sql语句.





作者: zcjzcjzcjzcj    时间: 2024-7-24 20:47
6666666666666666
作者: 特权    时间: 2024-7-24 21:25
NX线程池,MySql连接池,免费开源码简单超实用稳定
作者: ruyan666    时间: 2024-7-24 23:13
感谢分享,很给力!~
作者: 一尘不染    时间: 2024-7-24 23:18
多线程为什么不支持多参数,你考虑方便群众呀
作者: 1226852858    时间: 2024-7-25 00:02
666666666666666666666666666
作者: 白猫c    时间: 2024-7-25 00:16
感谢分享,很棒!




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4