Open guyspy opened 4 years ago
Hi 我是豬排
以下寫法,是基於假設系統永遠有可投放廣告而設計 https://github.com/haopoboy/ads-exposure-test/blob/dev/src/main/kotlin/io/github/haopooby/service/AdsServiceImpl.kt#L36-L39 但是若大部分廣告已被發完時,目前機制會面臨嚴重dead lock問題? 在可用廣告數量不足,但活躍使用者量級又非常大的的時候,目前寫法應該是會導致很快所有 thread 都被佔滿?
P.S. 原題目的 spec 指出
需支援同時存放的廣告達上萬筆 需支援同時在線人數達六百萬
其實題目並沒有保證資料庫中的廣告數量,將一直維持在萬筆的水準。 真實世界中廣告與同時在線人數是會一直動態變化的,一般開規格書時,本就只會定義「負載極限」數字,而工程師應有職責去考慮到各種環境下,可能會出現的 edge case。
再請想想可以怎麼設計了 這個更改不限時間,請儘管動腦思考囉
Hi 豬排 對,會卡在 while 這塊,我來寫個測試觸發這個錯誤並打算用空廣告的方式消化 之後我在增加更多情境測試模擬可能的現實狀況
Related to #11
Hi 我是豬排
以下寫法,是基於假設系統永遠有可投放廣告而設計 https://github.com/haopoboy/ads-exposure-test/blob/dev/src/main/kotlin/io/github/haopooby/service/AdsServiceImpl.kt#L36-L39 但是若大部分廣告已被發完時,目前機制會面臨嚴重dead lock問題? 在可用廣告數量不足,但活躍使用者量級又非常大的的時候,目前寫法應該是會導致很快所有 thread 都被佔滿?
P.S. 原題目的 spec 指出
其實題目並沒有保證資料庫中的廣告數量,將一直維持在萬筆的水準。 真實世界中廣告與同時在線人數是會一直動態變化的,一般開規格書時,本就只會定義「負載極限」數字,而工程師應有職責去考慮到各種環境下,可能會出現的 edge case。
再請想想可以怎麼設計了 這個更改不限時間,請儘管動腦思考囉