Akka-Stream 2.6.0+ 弃用的 actor 系统设置
Akka-Stream 2.6.0+ deprecated actor system setup
我曾经像这样在绑定中设置我的演员系统:
implicit val System: ActorSystem = ActorSystem()
implicit val Mat: Materializer = ActorMaterializer(ActorMaterializerSettings.create(System).withSupervisionStrategy(Decider))
但在新版本中 ActorMaterializer.apply/.create/.withSupervisionStrategy 已弃用:
@deprecated(
"Use the system wide materializer or Materializer.apply(actorContext) with stream attributes or configuration settings to change defaults",
"2.6.0")
@deprecated(
"Use the system wide materializer or Materializer.create(actorContext) with stream attributes or configuration settings to change defaults",
"2.6.0")
@deprecated("Use attribute 'ActorAttributes.supervisionStrategy' to change setting value", "2.6.0")
而且我不确定 System/Mat 的 2 行中应该更改什么...
Materializer 很容易,监管策略需要更多的改变。
监督策略。您需要提供 decider
作为流的属性,例如:
Source...
.via(flow)
.toMat(sink)(Keep...)
.withAttributes(ActorAttributes.supervisionStrategy(decider))
以这种方式创建实体器:
implicit val Mat: Materializer = Materializer(System)
是的,它已被弃用,并且在 documentation 中有明确说明。
您实际上应该做的只是创建 ActorSystem
并使用隐式 Materializer
。如文档中所写,提供 Materializer
out of the box.
在您的代码中,只需删除 Materializer
的显式创建
我曾经像这样在绑定中设置我的演员系统:
implicit val System: ActorSystem = ActorSystem()
implicit val Mat: Materializer = ActorMaterializer(ActorMaterializerSettings.create(System).withSupervisionStrategy(Decider))
但在新版本中 ActorMaterializer.apply/.create/.withSupervisionStrategy 已弃用:
@deprecated(
"Use the system wide materializer or Materializer.apply(actorContext) with stream attributes or configuration settings to change defaults",
"2.6.0")
@deprecated(
"Use the system wide materializer or Materializer.create(actorContext) with stream attributes or configuration settings to change defaults",
"2.6.0")
@deprecated("Use attribute 'ActorAttributes.supervisionStrategy' to change setting value", "2.6.0")
而且我不确定 System/Mat 的 2 行中应该更改什么...
Materializer 很容易,监管策略需要更多的改变。
监督策略。您需要提供
decider
作为流的属性,例如:Source... .via(flow) .toMat(sink)(Keep...) .withAttributes(ActorAttributes.supervisionStrategy(decider))
以这种方式创建实体器:
implicit val Mat: Materializer = Materializer(System)
是的,它已被弃用,并且在 documentation 中有明确说明。
您实际上应该做的只是创建 ActorSystem
并使用隐式 Materializer
。如文档中所写,提供 Materializer
out of the box.
在您的代码中,只需删除 Materializer