第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

WEB開發(fā)中。下載服務器上面的報表。怎么防止數(shù)據(jù)量過大導致超時的場景

WEB開發(fā)中。下載服務器上面的報表。怎么防止數(shù)據(jù)量過大導致超時的場景

三國紛爭 2019-02-22 19:13:33
問題 需要服務端生成報表,由于數(shù)據(jù)量過大。往往會導致下載過程中504錯誤。 下載流程已經(jīng)最優(yōu)化了。 目前解決方案 前臺點擊下載報表,發(fā)起一個異步請求。后臺處理完數(shù)據(jù)以后。把數(shù)據(jù)通過郵箱的方式發(fā)給下載者。 有沒有其它更加好的辦法,可以解決這個問題?謝謝。
查看完整描述

5 回答

?
收到一只叮咚

TA貢獻1821條經(jīng)驗 獲得超5個贊

謝謝各位的回答。
這邊我自己總結(jié)了一下,根據(jù)我自己的實際情況主要

  1. 前臺異步提交一個請求,后臺進行異步組合報表。然后通過1. 郵件的方式通知用戶2. 通過定時器將消息PUSH給用戶,讓用戶去相應的地址上下載
  2. 查詢時間精確到秒。在用戶請求之前,先告訴用戶在這個時間段訂單個數(shù)。我們可以設定一個合理的值來提示用戶(改動最小)
  3. 采取任務的形式,前臺提交一個任務給后臺,后臺創(chuàng)建一個任務,并且存入數(shù)據(jù)庫。前臺可以每隔30s向后臺請求,獲取任務的狀態(tài),以防止超時。相應的前臺有一個loading框(這里也可以改成將文件的生成過程放在服務端,然后這里給用戶返回的是一個連接,用戶可以直接點連接來下載文件)(這個類似使用AJAX的長連接模式)
  4. 把分析過程放在服務端。服務端起一個定時任務,隔段時間去分析這些數(shù)據(jù)。直接生產(chǎn)文件放在服務端??梢蕴峁┙o用戶一個下載列表直接提供給用戶下載
    5.優(yōu)化流程,采取dubbo批量數(shù)據(jù)請求。采取dubbo異步請求。多線程處理數(shù)據(jù)。多個dubbo服務合并(性能優(yōu)化)
查看完整回答
反對 回復 2019-03-01
?
qq_笑_17

TA貢獻1818條經(jīng)驗 獲得超7個贊

最直接的辦法便是,壓縮數(shù)據(jù)(例如導出時進行壓縮),調(diào)整 CGI 超時時間。這其中,可以考慮節(jié)省 CGI 進程(因為即使輸出成果已經(jīng)完成,按照題主的說明,fast_cgi 的 response buffer 肯定是遠遠小于這次輸出的大小),在最后輸出的過程上用其他服務(例如直接用nginx)代勞。

其實,例如在問題中的這種從產(chǎn)品設計的角度解決問題在我看來最優(yōu)解,實時下載真的是那么必要嗎?

查看完整回答
反對 回復 2019-03-01
?
九州編程

TA貢獻1785條經(jīng)驗 獲得超4個贊

邊讀數(shù)據(jù),邊寫數(shù)據(jù),比如分頁讀寫,這樣就不會超時了

查看完整回答
反對 回復 2019-03-01
?
楊__羊羊

TA貢獻1943條經(jīng)驗 獲得超7個贊

換個思路,你的所有問題都在超時上面! 為什么超時,因為等待時間過長。那為什么要等待呢???

你可以發(fā)出請求,服務器端執(zhí)行,告訴用戶,正在執(zhí)行,表示就成功了。然后就是用戶接受郵件的等待。

這個時候,你可以告訴用戶需要等待,或者加一個消息通知,成功后通知用戶

查看完整回答
反對 回復 2019-03-01
  • 5 回答
  • 0 關注
  • 1222 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號