全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 777|回复: 10

求助个技术问题,Pyhton Falsk和多线程的问题

[复制链接]
发表于 2022-3-27 11:44:58 | 显示全部楼层 |阅读模式
本帖最后由 我是大傻瓜 于 2022-3-27 11:49 编辑

有个Flask API,用户每调用一次就会启动一个线程去维护用户的请求信息

这个请求信息就是立马去下单买东西(逻辑复杂,所以需要单独的线程去维护),对及时性要求高(要立马执行),我的想法是搞个线程池,我担心的问题就是线程池最大数目超出了那么用户的请求就排队阻塞了,这时候就把用户请求搁置了就不行了。预估最高的时候同时运行500个线程那样

各位技术大佬有啥建议吗,非常感谢
发表于 2022-3-27 11:48:28 | 显示全部楼层
一般采用异步 + 协程 的方式去执行这样繁杂且步骤多的进程, 这样就可以解决了,如果还是解决不了的话,那就是系统的资源不够了,建议加机器做分布式,为每一个用户平均分配机器来执行这个进程
 楼主| 发表于 2022-3-27 11:58:07 | 显示全部楼层
Salta 发表于 2022-3-27 11:48
一般采用异步 + 协程 的方式去执行这样繁杂且步骤多的进程, 这样就可以解决了,如果还是解决不了的话,那 ...

分布式感觉入不敷出哈哈哈,我我去看看异步 + 协程好不好用,谢谢大佬的回复哈
发表于 2022-3-27 12:02:44 | 显示全部楼层
可以试试celery ,官方推荐的执行异步任务的库
发表于 2022-3-27 13:13:42 | 显示全部楼层
楼上说的异步可行,我做过一个项目就是你说的这种,每个请求开一个线程。解决方案就是用的异步。即时要求高的操作马上执行,后续操作维护一个队列依次执行
发表于 2022-3-27 13:20:54 | 显示全部楼层
放心不至于。
发表于 2022-3-27 14:08:50 来自手机 | 显示全部楼层
本帖最后由 yjsx86 于 2022-3-27 14:10 编辑

1 增加机器配置
2 更换语言 比如go
3 分布式
 楼主| 发表于 2022-3-27 17:51:18 | 显示全部楼层
nisekoi 发表于 2022-3-27 12:02
可以试试celery ,官方推荐的执行异步任务的库

看了下好像可以,非常感谢
发表于 2022-3-27 18:01:20 | 显示全部楼层
500个线程够呛,python有GIL,不管用协程还是异步都只能用一个核,上面有计算的逻辑就会卡住。你得搞成celery 多进程+gevent是比较合适的。异步库生态不好普遍bug比较多,写起来也没那么舒服。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-5-10 12:34 , Processed in 0.075385 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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