我在我的基於Java Spring的網站上有一個搜索輸入字段,用戶可以在其中搜索網站的內容。我想將用戶輸入的查詢異步保存到MySQL數據庫中以實現自動完成功能。我知道我可以使用@Async註釋在Spring中指定一個帶游泳池大小的以下內容:Spring @Async保存搜索
<task:annotation-driven executor="executor" />
<task:executor id="executor" pool-size="100"/>
問:
- 這是一個高流量的網站擁有超過10,000很好的解決方案每分鐘搜索?考慮可能導致游泳池耗盡異常?
- 有沒有更好的解決方案?
保存一個搜索查詢和獲取自動完成對我來說似乎不是一個沉重的任務(只要你得到你的索引權)。我不認爲使用執行器是必要的,我只是使用簡單的DAO連接到控制器 – gerrytan
是的,我使用SOLR索引。我在我的Controller中調用QueryService.save,然後調用QueryService.query來查詢SOLR。我只是認爲QueryService.save可能會影響性能。所以我錯了? – hajime
我認爲你可以有一個無限的隊列,你可以將文本添加到每個請求中(而不是在後臺),並且有一些後臺線程在有可用文本時從隊列中使用。 –