1 回答

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
據(jù)我所知,問題是您正在寫入數(shù)據(jù)庫,但您正在從緩存版本中讀取數(shù)據(jù),因此 rss 的響應(yīng)并未反映發(fā)出請求時(shí)的模型。如果你看看這段代碼;
database := model.ReadFileIntoSlice()
// initialise mux router
r := mux.NewRouter()
// http handles
r.HandleFunc("/add/{base64url}", rest.AddArticle(database))
您需要以某種方式修改database. 有很多方法可以做到這一點(diǎn)。一些選項(xiàng)是 1) 在某個(gè)對象或包級別定義它,然后從AddArticle定義的任何地方直接修改它。2)刷新您的內(nèi)存版本,即在返回結(jié)果之前,再次從數(shù)據(jù)庫中讀取,這樣您就可以確保獲得最新的(obv 性能影響) 3)不要database按值傳遞,而是將參數(shù)設(shè)為指針。AddArticle正在獲取database您在 rss 調(diào)用中讀取的版本的副本而不是地址。您可以改為將指針傳遞給該方法,以便修改原始副本(隨著模型變大,它的性能也會大大提高)。
基于你的程序的簡單性,我可能會做 3。實(shí)際上 2 是一個(gè)更強(qiáng)大的解決方案,嚴(yán)肅的企業(yè)軟件可能需要更多類似的東西(如果你的應(yīng)用程序負(fù)載平衡或類似的東西,你的模型不起作用)。
- 1 回答
- 0 關(guān)注
- 192 瀏覽
添加回答
舉報(bào)