开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 16149|回复: 429
收起左侧

[易语言模块源码] ✅MySql连接池 Nx线程池 开源码 超稳定 简洁易用 带详细例程

  [复制链接]
结帖率:100% (11/11)
发表于 2024-7-29 20:39:33 | 显示全部楼层 |阅读模式   广东省茂名市
分享例程
界面截图:
备注说明: 内含 线程池 和 mysql 连接池,简单实用稳定 开源 免费
不知不觉已经更新了很多次了。。。

更新太多次了,我都感觉怪不好意思的。。。
还好上次更新时,有大神(1425113841)帮忙重构MySql连接池
经过几天缠着他帮忙,终于完成了很完善的 MySql连接池啦
大神主页:https://bbs.125.la/home.php?mod=space&uid=267394
他的原始版本在这:https://bbs.125.la/forum.php?mod=viewthread&tid=14829142
在贴子的置顶页257楼)你可以去下载

本贴子是更加完善的版本,我也轻封装了一些常用函数。

一、线程池:
1、可以传递参数10个,1个整数型9个文本型。
2、其它没啥好说的,我也一直在使用,请自行体验。

二、MySql连接池:
1、对比以前版本,本次已经重构
2、池使用FIFO的数据结构进行存储
3、当连接已断开时, 会丢弃掉连接, 重新创建新的Mysql连接
4、采用 惰性连接 不怕断开,无须心跳
5、默认最大可使用 8 条连接,初始化时可自定义 N 条连接数
6、增加 NX_过滤 函数用于辅助where语句的参数转义, 当发现危险字符没有转义会自动转义
7、可选择是否输出监控日志,让更了解执行情况
8、采用 数据类型 方式提取返回内容,返回 多少行数量 以及 json格式的数据库内容
9、也内置了传统模式的 查询返回内容和执行sql 函数
10、更多自行体验吧,在例程中有着非常详细的使用方法,源码中都有各种注解,方便二创

222.jpg
333.jpg
Nx线程池、MySql连接池 模块源码在此
NX线程连接池.e (84.47 KB, 下载次数: 387, 售价: 5 枚 精币)

评分

参与人数 39好评 +16 精币 +52 收起 理由
kyo9766 + 1 感谢分享,很给力!~
田格本 + 1 支持开源~!感谢分享
sjgzsj + 1 + 1 好像有bug 表名存在_无法正常识别表
倾风听雨声 + 1 + 2 支持开源~!感谢分享
鸿运 + 1 + 2 YYDS~!
大彩笔 + 1 + 1 此处应该有鼓励~
朱熠 + 1 支持开源~!感谢分享
wgliyue + 1 + 2 支持开源~!感谢分享
t176 + 1 感谢分享,很给力!~
searchjack + 1 + 2 YYDS~!
李泽勇2 + 1 + 3 开源精神必须支持~
Zźh926 + 1 感谢分享,很给力!~
聿聿 + 1 感谢分享,很给力!~
ican8 + 1 感谢分享,很给力!~
jc520hll + 1 感谢分享,很给力!~
xhping + 1 感谢分享,很给力!~
perfectmyt + 1 支持开源~!感谢分享,更新写个版本号呀!!
无尘666 + 1 感谢分享,很给力!~
风雨3137 + 1 感谢分享,很给力!~
qiyuer + 1 感谢分享,很给力!~
浮梦 + 1 感谢分享,很给力!~
ewake + 1 感谢分享,很给力!~
hackjoe + 1 感谢分享,很给力!~
huangdi956 + 1 感谢分享,很给力!~
huangdi9569 + 1 感谢分享,很给力!~
bear22 + 1 感谢分享,很给力!~
XXGL2005 + 1 感谢分享,很给力!~
文西哥 + 1 感谢分享,很给力!~
booms + 1 感谢分享,很给力!~
望尘莫及 + 1 感谢分享,很给力!~
kike + 1 + 1 开源精神必须支持~
重新归零 + 1 + 2 支持开源~!感谢分享
Mr.huang + 1 + 2 支持开源~!感谢分享
inat + 1 + 2 感谢分享,很给力!~
没事瞎琢磨 + 1 支持开源~!感谢分享
云长爱读春秋 + 1 + 2 开源精神必须支持~
陌路海岸 + 1 + 2 开源精神必须支持~
a657938016 + 1 + 2 支持开源~!感谢分享
1425113841 + 1 + 3 很好很强悍,坚持下去哦~

查看全部评分


友情提醒:请选择可信度高的模块,勿用未知模块,防止小人在模块内加入木马程序。【发现问题模块请到站务投诉】。

本帖被以下淘专辑推荐:

结帖率:100% (1/1)

签到天数: 3 天

发表于 5 天前 | 显示全部楼层   广东省东莞市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 18 天

发表于 2024-11-12 01:41:11 | 显示全部楼层   山东省日照市
据库cha询,有没有大佬有例子给一个据库cha询,有没有大佬有例子给一个

点评

例子中有这么详细的例子,居然没有看到?   广东省茂名市  发表于 2024-11-12 10:23
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 13 天

发表于 2024-11-7 21:24:53 | 显示全部楼层   河南省南阳市
最新版已更新至 20241107啥时候能下载啊  等一下午了 还没审核通过啊
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 2 天

发表于 2024-11-6 16:17:52 | 显示全部楼层   辽宁省营口市
jcos 发表于 2024-11-5 10:46
那你可以不用判断线程池是否结束,你可以判断任务是否完成不就行了么?
比如在子程序中的最尾处判断是不 ...

我测试的场景
1.初始化线程池
2.统计归零
3.然后加入所有需要的任务
4.判断等待任务是否全部完成 【这里循环判断】问题就出现在这里
5.关闭线程池
场景重现
现在我点击另一个停止任务按钮,就是执行线程池.关闭之后就会卡【4】这里,这时候调试输出发现已执行任务有2个。出现这个问题的原因,就是我点击关闭线程池后,线程池.关闭方法里会重置统计的参数,但是子线程有没执行完的任务,等执行完之后了,其实线程池已经关闭了,但是线程池类里边的已执行数量还是增加了,那么线程池.取任务状态 返回就不准确了,就是这个问题不知道是不是已执行统计这里,是不是应该加一下线程池状态的判断,如果已关闭就不应该继续统计了。

因为我子线程里边有网页_访问,这个不好控制时间,只能在线程池.关闭()这里延迟设置大一点可以避免。
或者在第4步循环判断内加入线程池.取状态()因为这个取状态在线程池已关闭状态的情况下会重置统计数量。

我问题已经解决了,就是想反应一下看看

点评

是的,判断这东西要多方面入手,有些没想得很细节。之下新版看看   广东省茂名市  发表于 2024-11-6 17:04
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)

签到天数: 20 天

 楼主| 发表于 2024-11-6 03:32:52 高大上手机用户 | 显示全部楼层   广东省茂名市
吴磊磊 发表于 2024-11-5 10:58
执行任务的子程序需要不需要线程许可证啥的?

刚刚发布了新版,下载新版就行,mysql连接池已内置了许可证
回复 支持 反对

使用道具 举报

结帖率:92% (23/25)

签到天数: 19 天

发表于 2024-11-5 10:58:57 | 显示全部楼层   安徽省池州市
执行任务的子程序需要不需要线程许可证啥的?
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)

签到天数: 20 天

 楼主| 发表于 2024-11-5 10:46:31 | 显示全部楼层   广东省茂名市
pptk 发表于 2024-11-4 13:21
.版本 2
.支持库 spec

那你可以不用判断线程池是否结束,你可以判断任务是否完成不就行了么?
比如在子程序中的最尾处判断是不是执行行完了等,也再说也有命令判断任务的呀

另外例子中的停止是等于关闭线程池的(不建议常用)
但是已经在运行中的任务是不会立即停止的,会继续执行完任务才会停止,这时可以在任务中加入一些判断,

比如你点击了 停止按钮 时给一个集或全局变量,在任务中判断这个变量等等,是否跳出或返回结束这个任务等等。。。
这些都是基本常识了

线程池.取状态() 是指线程池是否正常
线程池.取任务状态 () 这个才是常用的,判断是否还有任务在执行

正常使用中,线程池初始化后,就不会再去关闭线程池了,一般都是在程序结束前关闭
所以 线程池.关闭 () 这个是不常用的

在正常使用中,自己还需要用到一些别的判断方式,一些通用的判断方式
比如自己想停止所有线程任务,那就在任务子程序中加上一些判断,是不是跳出和返回等等。如果想暂停,那就在子程序中加入一些死循环,那它进行不下去也是暂停一样了。。。等等太多用法了,靠自己逻辑哈
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 2 天

发表于 2024-11-4 13:21:48 | 显示全部楼层   辽宁省营口市
.版本 2
.支持库 spec

.判断循环首 (线程池.取任务状态 () = 假)  ' 判断是否全部任务已完成
    延迟 (1000)
    处理事件 ()
.判断循环尾 ()

调试输出 (“所有任务完成”)
' 线程池.关闭 () 在实际应用中,其实没必要每次都创建线程池和关闭,只需启动程序后创建好,之后随时可以调用,等软件关闭时再关闭线程池就行
线程池.关闭 (5)
时钟1.时钟周期 = 0
取所有状态 ()  ' 查看状态

按照例子写的,有一个停止按钮,点击后执行线程池.关闭(5),但是偶尔有时候会卡在 判断循环里边,如果在判断里边执行一下,线程池.取状态(),就会立即跳出去,不知道是为什么?而且子线程里边只是调试输出了一段文字,不需要单独判断结束子线程。
.判断循环首 (线程池.取任务状态 () = 假)  ' 判断是否全部任务已完成
    延迟 (1000)
    处理事件 ()
.判断循环尾 ()
回复 支持 反对

使用道具 举报

结帖率:78% (14/18)

签到天数: 7 天

发表于 2024-11-2 18:29:33 | 显示全部楼层   广东省中山市
支持一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表