在run_in_executor()中使用龙卷风的AsyncHTTPClient与包装阻止http调用之间有显着区别吗?



我正在尝试在tornado应用程序中使用库s3fs。最简单的方法是创建一个小函数,从 s3 获取一些数据(使用s3fs)并将其包装在run_in_executor()中。

编写自定义库以使用 tornado 的AsyncHTTPClient从 s3 获取有什么好处吗?

(注意:我知道botoaio和其他人。对于我的特定用例,我要求输出采用s3fs提供的格式。

AsyncHTTPClient 比使用 run_in_executor 运行同步库更有效。区别主要在于高并发级别的线程堆栈所需的内存。只要有足够的线程和内存来满足并发级别,性能通常就会相似。因此,除非您并行执行大量 s3 操作,否则几乎没有理由投入大量工作将所有内容转换为异步接口。

最新更新