使用龙卷风的 AsyncHTTPClient v.s 之间是否有显着差异。在 run_in_executor() 中包装阻塞的 http 调用?
Is there a significant difference between using the tornado's AsyncHTTPClient v.s. wrapping blocking http calls in run_in_executor()?
我正在尝试在 tornado
应用程序中使用库 s3fs
。最简单的方法是制作一个小函数,从 s3 中获取一些数据(使用 s3fs
)并将其包装在 run_in_executor()
.
中
编写自定义库以使用 tornado 的 AsyncHTTPClient
从 s3 获取数据有什么好处吗?
(注意:我知道 botoaio 和其他人。对于我的特定用例,我要求输出采用 s3fs
提供的格式。)
AsyncHTTPClient 比 运行 具有 run_in_executor 的同步库更 高效 。区别主要在于高并发级别下线程栈所需的内存。只要您有足够的线程和内存来满足您的并发级别,性能通常会相似。因此,除非您并行执行大量 s3 操作,否则没有理由投入大量工作将所有内容转换为异步接口。
我正在尝试在 tornado
应用程序中使用库 s3fs
。最简单的方法是制作一个小函数,从 s3 中获取一些数据(使用 s3fs
)并将其包装在 run_in_executor()
.
编写自定义库以使用 tornado 的 AsyncHTTPClient
从 s3 获取数据有什么好处吗?
(注意:我知道 botoaio 和其他人。对于我的特定用例,我要求输出采用 s3fs
提供的格式。)
AsyncHTTPClient 比 运行 具有 run_in_executor 的同步库更 高效 。区别主要在于高并发级别下线程栈所需的内存。只要您有足够的线程和内存来满足您的并发级别,性能通常会相似。因此,除非您并行执行大量 s3 操作,否则没有理由投入大量工作将所有内容转换为异步接口。