Мне нужно обработать файлы, которые нам присылают продавцы. Каждое имя файла будет содержать идентификатор продавца. Например. Товары - 118763.csv, где число - идентификатор продавца.
Я хочу настроить поток данных для обработки этих файлов. Одновременно можно обрабатывать несколько файлов.
Однако файлы для каждого продавца должны обрабатываться по порядку. Это означает, что никакие два файла для конкретного продавца не могут обрабатываться одновременно.
Я не уверен, как смоделировать это с помощью потока данных. Я мог бы отслеживать, какие продавцы обрабатываются в настоящее время, но я не знаю, как убедиться, что я не обрабатываю два файла от одного и того же продавца, при этом обрабатывая как можно больше файлов одновременно.
Кажется, мне нужно отфильтровать то, что я беру из очереди, но я могу получать только один элемент за раз, а когда у меня есть, что тогда. Я мог бы повторно запросить его, но это может означать много повторного запроса, если есть только два файла, и они оба от одного и того же продавца.
Любые идеи?