Я пытаюсь реализовать следующий «конвейер» с использованием RxJava (пока версии 1, но я мог бы обновиться до 2):
- Постоянно читать идентификаторы (строки) из ресурса.
- Пакетные идентификаторы в чанках, используя
buffer(5, SECONDS)
- Для каждого идентификатора в блоке, проверьте кэш для метаданных, связанных с идентификатором.
- Для тех идентификаторов без кэшированных метаданных,сделайте запрос на метаданные.
- Если запрос возвращается с метаданными для идентификаторов, обновите кэш
- Наконец, запишите каждый идентификатор со связанными метаданными в файл.
Мое текущее решение использует синхронизированный Map
для кэша.Но поскольку RxJava иногда помогает устранить явную блокировку, есть ли решение моей проблемы с использованием методов RxJava?Я хотел бы сделать что-то вроде scan
, но вернуть что-то другое, чем я накапливаю.