|
发表于 2025-7-23 03:21:45
|
显示全部楼层
河北省秦皇岛市
11要让单个易语言程序跑满服务器资源,关键在于实现高效的并发请求。
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | 线程池 | 鱼刺类_线程池Ex | | 请求URL | 文本型 | | 请求总数 | 整数型 | | 成功数 | 整数型 | | 失败数 | 整数型 | | 停止标志 | 逻辑型 | |
线程池. 创建 (500, 1000 ) 请求URL = "http://example.com/api" 停止标志 = 假 .局部变量 线程数, 整数型 .局部变量 i, 整数型 停止标志 = 假 线程数 = 到整数 (编辑框1.内容 ) 请求总数 = 0 成功数 = 0 失败数 = 0 计次循环首 (线程数, i ) 线程池. 投递任务 (&发送请求, i ) 计次循环尾 ()停止标志 = 真 .局部变量 请求结果, 文本型 .局部变量 请求参数, 文本型 .局部变量 开始时间, 整数型 .局部变量 结束时间, 整数型 判断循环首 (停止标志 = 假) 开始时间 = 取现行时钟 ()  请求参数 = "param1=value1¶m2=value2"   请求结果 = 精易_HTTP. 访问网页 (请求URL, 1, 请求参数 )  结束时间 = 取现行时钟 () 线程_同步 (, , , , ) 请求总数 = 请求总数 + 1  如果 (取文本长度 (请求结果 ) > 0 )  成功数 = 成功数 + 1    失败数 = 失败数 + 1   标签1.标题 = "请求总数: " + 到文本 (请求总数 ) 标签2.标题 = "成功: " + 到文本 (成功数 ) 标签3.标题 = "失败: " + 到文本 (失败数 ) 标签4.标题 = "平均响应时间: " + 到文本 ( (结束时间 - 开始时间 ) / 请求总数 ) + "ms" 线程_同步结束 () 判断循环尾 ()
更高效的方法:
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | 异步HTTP | 类_精易HTTP | | 请求URL | 文本型 | | 请求总数 | 整数型 | | 成功数 | 整数型 | | 失败数 | 整数型 | | 并发数 | 整数型 | | 当前请求数 | 整数型 | | 停止标志 | 逻辑型 | |
请求URL = "http://example.com/api" 并发数 = 1000 当前请求数 = 0 停止标志 = 假 异步HTTP. 创建 ()异步HTTP. 设置超时 (5000 ) 异步HTTP. 设置事件回调 (&HTTP请求完成 )请求总数 = 0 成功数 = 0 失败数 = 0 停止标志 = 假 计次循环首 (并发数, i ) 发送异步请求 () 计次循环尾 ()停止标志 = 真 如果 (停止标志 = 真 或 当前请求数 >= 并发数 ) 返回 ()当前请求数 = 当前请求数 + 1 请求参数 = "param1=value1¶m2=value2" 异步HTTP. 发送请求 (请求URL, 1, 请求参数, , , 当前请求数 )|
HTTP请求完成 | | | |
请求ID | 整数型 | | | | 结果 | 整数型 | | | | 数据 | 文本型 | | | |
当前请求数 = 当前请求数 - 1 线程_同步 (, , , , )请求总数 = 请求总数 + 1 如果 (结果 = 1 ) 成功数 = 成功数 + 1   失败数 = 失败数 + 1 标签1.标题 = "请求总数: " + 到文本 (请求总数 )标签2.标题 = "成功: " + 到文本 (成功数 )标签3.标题 = "失败: " + 到文本 (失败数 )线程_同步结束 () 发送异步请求 ()
|
|