Субъект FileWriter в Akka / Scala

#scala #akka

#scala #akka

Вопрос:

Я пишу приложение Akka / Scala, в котором взаимодействуют многие участники. Некоторые из этих взаимодействий приводят к результатам, которые я хотел бы сохранить в файле. Моя текущая идея состоит в том, чтобы иметь одного субъекта FileWriter, который получает результаты от всех других участников и добавляет их в файл, который остается открытым в течение всего выполнения.

  1. это разумный подход?
  2. на что мне следует обратить внимание при реализации FileWriter?

Комментарии:

1. требуется ли записывать все данные в один файл или может быть несколько файлов?

2. @4aRkKn1gh7 : не требуется, но это было бы наиболее удобно. Не должно быть огромных объемов для записи, я просто хочу, чтобы решение было неблокирующим для остальной части приложения.

3. ну, если данных не слишком много, вы можете использовать одного актера, который будет собирать данные от всех актеров. Но у вас должен быть какой-то механизм очереди у этого субъекта для хранения данных, подлежащих записи

4. @4aRkKn1gh7 какой-то механизм очереди у этого субъекта для хранения данных, подлежащих записи , да? для чего? разве обычной очереди актеров недостаточно?

5. Я бы посмотрел на AsynchronousFileChannel для записи. Это было бы неблокирующим, и вы могли бы выделить область файла с помощью метода map.