iachel 发表于 2024-5-18 03:15:28

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

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

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

各位技术大佬有啥建议吗,非常感谢

灌水王 发表于 2024-5-18 03:16:03

一般采用异步 + 协程 的方式去执行这样繁杂且步骤多的进程, 这样就可以解决了,如果还是解决不了的话,那就是系统的资源不够了,建议加机器做分布式,为每一个用户平均分配机器来执行这个进程

huyong 发表于 2024-5-18 03:16:17

分布式感觉入不敷出哈哈哈,我我去看看异步 + 协程好不好用,谢谢大佬的回复哈

灌水王 发表于 2024-5-18 03:17:06

可以试试celery ,官方推荐的执行异步任务的库

灌水王 发表于 2024-5-18 03:17:50

楼上说的异步可行,我做过一个项目就是你说的这种,每个请求开一个线程。解决方案就是用的异步。即时要求高的操作马上执行,后续操作维护一个队列依次执行

jq8ves11 发表于 2024-5-18 03:18:21

放心不至于。

灌水王 发表于 2024-5-18 03:19:06

用 FastAPI

灌水王 发表于 2024-5-18 03:19:42

1 增加机器配置
2 更换语言 比如go
3 分布式

vikas 发表于 2024-5-18 03:20:24

看了下好像可以,非常感谢

灌水王 发表于 2024-5-18 03:20:54

500个线程够呛,python有GIL,不管用协程还是异步都只能用一个核,上面有计算的逻辑就会卡住。你得搞成celery 多进程+gevent是比较合适的。异步库生态不好普遍bug比较多,写起来也没那么舒服。
页: [1]
查看完整版本: 求助个技术问题,Pyhton Falsk和多线程的问题