[英]How to speed up Flask response download speed
我的前端Web應用程序正在緩存的終結點上調用python Flask API,並返回大約80,000行長和1.7兆字節的JSON。
直接調用路徑大約需要6.5秒的時間,Chrome瀏覽器會花費時間。
我知道我可以拆分此端點以提高性能,但是出於好奇,還有什么其他不錯的選擇可以提高所有這些內容的下載速度?
到目前為止,我能想到的選擇:
1)壓縮內容。 但是然后我必須在前端將其解壓縮
2)使用gRPC之類的東西
進一步的信息:我的flask服務器正在使用gevent的WSGIServer,端點代碼如下。 PROJECT_DATA_CACHE是已返回的Jsonified數據:
@blueprint_2.route("/projects")
def getInitialProjectsData():
global PROJECT_DATA_CACHE
if PROJECT_DATA_CACHE:
return PROJECT_DATA_CACHE
else:
LOGGER.debug('No cache available for GET /projects')
updateProjectsCache()
return PROJECT_DATA_CACHE
也許您可以流式傳輸文件? 如果不進行某種下載或等待,我看不到任何方式傳輸80,000行長的文件。
像您建議的那樣,這將是一個壓縮和解壓縮的機會。 絕對確保縮小了JSON。
這實際上還取決於項目,也許您可以讓用戶完全下載它?
做到這一點的最好方法是將JSON分成多個塊,然后將生成器傳遞給Response
以流式傳輸它。 然后,您可以在接收到數據時呈現數據,或者顯示進度條以顯示已完成的百分比。 我有一個文件正在從AWS下載S3如何流數據的例子在這里 。 那應該為您指明正確的方向。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.