Обработка запросов в RxJava, проведение кеша - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь реализовать следующий «конвейер» с использованием RxJava (пока версии 1, но я мог бы обновиться до 2):

  1. Постоянно читать идентификаторы (строки) из ресурса.
  2. Пакетные идентификаторы в чанках, используя buffer(5, SECONDS)
  3. Для каждого идентификатора в блоке, проверьте кэш для метаданных, связанных с идентификатором.
  4. Для тех идентификаторов без кэшированных метаданных,сделайте запрос на метаданные.
  5. Если запрос возвращается с метаданными для идентификаторов, обновите кэш
  6. Наконец, запишите каждый идентификатор со связанными метаданными в файл.

Мое текущее решение использует синхронизированный Map для кэша.Но поскольку RxJava иногда помогает устранить явную блокировку, есть ли решение моей проблемы с использованием методов RxJava?Я хотел бы сделать что-то вроде scan, но вернуть что-то другое, чем я накапливаю.

...