我有两台tornado服务器作为文件传输,文件从A服务器传输到B服务器或从B服务器到A服务器这样的一个双向传输。在传输端为了提高并发我用了线程池,但是接受端却要一个一个的接收文件。接收文件本身是一个耗时操作,阻塞了ioloop主循环。有没有什么办法能够提升传输效率,现在程序往往会因为文件过大而阻塞住后续请求。
我现在已经考虑替换tornado服务器,tornado并不适合我现在的使用场景,目标是使用fastapi+celery
我有两台tornado服务器作为文件传输,文件从A服务器传输到B服务器或从B服务器到A服务器这样的一个双向传输。在传输端为了提高并发我用了线程池,但是接受端却要一个一个的接收文件。接收文件本身是一个耗时操作,阻塞了ioloop主循环。有没有什么办法能够提升传输效率,现在程序往往会因为文件过大而阻塞住后续请求。
我现在已经考虑替换tornado服务器,tornado并不适合我现在的使用场景,目标是使用fastapi+celery
4 回答4.5k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
4 回答4.1k 阅读
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
传输文件是IO型任务,龙卷风的事件处理可以hold住呢,具体有啥问题?当然使用消息队列也没问题。
我的解决方法:有A、B两个服务,分别部署在不同机器,两个服务各自提供rest接口,相互调用,传输文件。