Я пытаюсь реактивно хвост лог-файл с помощью RxJava-File:RxJava-файл и оператор цепочки
File file = new File(".\\server.log");
Observable<String> newLines =
FileObservable.tailer()
.file(file)
.startPosition(file.length())
.sampleTimeMs(1000)
.chunkSize(8192)
.utf8()
.tailText();
newLines.subscribe(System.out::println);
и она работает, как ожидалось. Но как только я пытаюсь связать еще несколько операторов, у меня возникают проблемы. Например, изменения в
newLines.filter(LogfileWatcher::error).subscribe(System.out::println);
(где error()
простая функция String -> Boolean
) Я получаю выход только после первого добавления к файлу, но не последующие. Аналогичные проблемы возникают при использовании window()
или нескольких других операторов.
Что я делаю неправильно?
интересно, я посмотрю. rxjava-файл был ранним созданием моего, возможно, пора рассмотреть его немного. –