>

사용자 정의 GraphStageLogic 를 사용하여 구현 된 노드 네트워크가 있습니다. . 스테이지에서 예외가 발생하는시기를 판별하는 API를 찾을 수 없습니다 (예 : IllegalArgumentException )   Cannot pull port 를 위해 ). Akka가하는 유일한 일은 다운 스트림 연결에 실패하는 것입니다. 내가 결정해야 할 것은 예를 들어 postStop 입니다.  또는 런타임 예외로 인해 노드가 종료 될 때 콜백을 통해 해당 정보를 Promise 에 전파  전체 시스템의 상태를 모니터링합니다. withAttributes(supervisionStrategy) 사용  아무 효과도 없습니다. GraphStageLogic 내부에서 발생한 예외를 모니터링 할 수있는 방법이 없다는 것이 당황스럽게 보입니다. ? failStage  기본적으로 GraphStageLogic 의 전체 API와 같이 최종적입니다. .


  • 답변 # 1

    그래프를 구체화하는 데 사용되는 ActorMaterializer를 정의 할 때 디 사이더를 사용하면 작동합니다 :

    implicit val materializer: ActorMaterializer = ActorMaterializer(
          ActorMaterializerSettings(actorSystem).withSupervisionStrategy(decider))
    
    

    결정자가 전형적인 곳

    val decider: Supervision.Decider = {
      case e: IllegalArgumentException => ....
    }
    
    

관련 자료

  • 이전 javascript - 지구본을위한 다각형 삼각 분할
  • 다음 GDAX 샌드 박스 상태?