我們的系統使用以下Spring集成輪詢太慢
<int-file:inbound-channel-adapter
directory="file:#{'${poller.landingzonepath}'.toLowerCase()}" channel="createMessageChannel"
filename-regex="${ingestion.filenameRegex}" queue-size="10000"
id="directoryPoller" scanner="leafScanner">
<!-- <int:poller fixed-rate="${ingestion.filepoller.interval:10000}" max-messages-per-poll="100" /> -->
<int:poller fixed-rate="10000" max-messages-per-poll="1000" />
</int-file:inbound-channel-adapter>
我們也有從默認RecursiveLeafOnlyDirectoryScanner延伸leafScanner,我們leafscanner沒有做太多Spring集成項目。只需針對正則表達式屬性檢查一個目錄。
我們看到的問題是存在250,000個(.landed [我們關心的文件]文件),這意味着我們正在輪詢的目錄中有大約500k個實際文件。這是對舊系統的重新設計,重新設計使應用程序更具可擴展性,同時不受輪詢父目錄內的目錄名稱的影響。我們想要擺脫每個特定目錄的輪詢器,但似乎除非我們做錯了什麼,否則我們必須回到這個問題。
如果有人有任何可能的解決方案或配置項目,我們可以嘗試請讓我知道。在我的本地機器上安裝了66k的.lan文件,大約需要16分鐘才能將第一個文件提交給我們的變壓器來做某件事。
是的,我讀到了有關RecursiveLeafOnlyDirectoryScanner的內容,但找不到任何提到的上限。 – John