#scala #akka
#scala #akka
Вопрос:
Я пишу приложение Akka / Scala, в котором взаимодействуют многие участники. Некоторые из этих взаимодействий приводят к результатам, которые я хотел бы сохранить в файле. Моя текущая идея состоит в том, чтобы иметь одного субъекта FileWriter, который получает результаты от всех других участников и добавляет их в файл, который остается открытым в течение всего выполнения.
- это разумный подход?
- на что мне следует обратить внимание при реализации FileWriter?
Комментарии:
1. требуется ли записывать все данные в один файл или может быть несколько файлов?
2. @4aRkKn1gh7 : не требуется, но это было бы наиболее удобно. Не должно быть огромных объемов для записи, я просто хочу, чтобы решение было неблокирующим для остальной части приложения.
3. ну, если данных не слишком много, вы можете использовать одного актера, который будет собирать данные от всех актеров. Но у вас должен быть какой-то механизм очереди у этого субъекта для хранения данных, подлежащих записи
4. @4aRkKn1gh7 какой-то механизм очереди у этого субъекта для хранения данных, подлежащих записи , да? для чего? разве обычной очереди актеров недостаточно?
5. Я бы посмотрел на AsynchronousFileChannel для записи. Это было бы неблокирующим, и вы могли бы выделить область файла с помощью метода map.