Я пытаюсь загрузить большое количество файлов с конечной точки smb://
, и я хотел бы, чтобы потребление файлов было как можно более быстрым - это означает, что я хотел бы загрузить и обработать как можно больше файлов, например опрос для 2000 файлов вместо значения по умолчанию в Camel. Чтобы добиться этого, я искал способ увеличить размер входящего пакета или добавить многопоточное / параллельное потребление для одной папки.
До сих пор я пробовал следующее, но заметил, что скорость загрузки осталась такой же, как и в одном потоке:
from("smb:\\someFolder?&maxMessagesPerPoll=1000")...
from("smb:\\someFolder?&maxMessagesPerPoll=-1")...
from("smb:\\someFolder").threads(20)...
Даже с параметром threads
, несмотря на то, что идентификаторы потоков различаются, скорость загрузки была одинаковой. Я полагаю, что Camel просто создает пул потоков, чтобы каждый раз каждый поток принимал другой поток, но количество опроса одинаково.
Я также посмотрел флаг concurrentConsumers
, но из того, что я понял, он не поддерживается для файлов, скорее для ActiveMQ.
Единственное исправление эффективности, которое мне удалось применить, потребляло от нескольких smb://
конечных точек. Пропускная способность быстро возросла, когда я это сделал. Мне интересно, есть ли способ достичь того же результата, что и для нескольких папок, но с использованием только одной папки?