Сериализация / десериализация будущего Scala - PullRequest
0 голосов
/ 25 октября 2018

Можно ли сериализовать Scala Future в byte[] и затем снова десериализовать его?.

И если это возможно, знает ли кто-нибудь лучший подход?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Этого не должно быть при стандартной реализации Futures в Scala.Future явно не реализует интерфейс Serializable и не должен быть сериализован.

Вопрос в том, что произойдет, когда Future еще не закончено.Будущее выполняется, потому что его задача запланирована в ExecutionContext.Если кто-то сериализует это Будущее и десериализует его на другой JVM, тогда задача будет запланирована только на первую JVM.На второй JVM будущее никогда не получит своего результата.

Возможно, имеет смысл сериализовать содержимое Future, как только оно будет готово.

0 голосов
/ 25 октября 2018
import concurrent.ExecutionContext.Implicits._
println(if ((concurrent.Future{}).isInstanceOf[Serializable]) "Yes" else "No")

отпечатки

No
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...