func (g *Group) Do(key string, fn func() (interface{}, error)) (v interface{}, err error, shared bool)
Do 执行并返回给定函数的结果,确保同一时间针对给定键只有一个执行过程 。如果出现重复,重复的调用者会等待原始调用完成并接收相同的结果 。返回值 shared 表示是否将 v 给了多个调用者 。
现在让我们重新运行模拟并比较结果 。
文章插图
文章插图
- 平均每秒请求数 (RPS): 2309
- 平均响应时间: 433毫秒
- 50% 响应时间: 389毫秒
- 99% 响应时间: 777毫秒
结论从那时起我们就注意到,通过优化数据库查询,可以大大提高应用程序的整体性能 。虽然我们讨论的方法是情景性的,但Discord已经使用了一年多,对他们有很大帮助 。
你应该知道,如果你使用数据服务 , 你将面临其他的复杂情况 。例如 , 你可能会有多个数据服务实例,而你的Python API必须有一种机制将类似的请求发送到同一个实例 。
推荐阅读
- 提升Python编程体验:探索VS Code的无限可能
- Python的range函数内部是怎么实现的?
- 协程:解锁并发编程的新世界
- 深入Linux内核:探秘进程实现的神秘世界
- 构建基于Linux的物联网应用程序:传感器和数据处理
- 全网疯传的前端量子纠缠效果,源码来了!
- 免费获取GPT-4的五种工具
- HashMap:Java中的高效数据结构
- 上数据中台的第一步:理清数据中台5个建设步骤
- Nodejs 的 CommonJS 规范实现原理