2017-04-08 20 views
0

Akka 액터를 사용하여 Java 기반의 재생 애플리케이션이 있습니다. 최근에는 병렬성과 관련된 성능 문제가 발생했습니다. Google을 거치며 맞춤형/고정 된 운영자/집행자를 배우에게 할당 할 수 있음을 알았습니다. 배우 창작 당시 배우 이름에 고유 ID가 붙은 배우 이름을 지정했습니다.UUID로 명명 된 경우 akka 액터의 디스패처 정의

액터 이름에 고유 ID가 추가 될 때 고정 된 발송자를 사용하도록 내 액터를 지정하는 방법이 있습니까?

아래와 같이 application.conf를 업데이트하려고하고 예상대로 결과를 얻지 못했습니다. 여전히 기본 발송자를 사용하고 있습니다.

내 배우 akka에 있습니다 : // 응용 프로그램/사용자/배우 내가 사용

akka.actor.deployment { 
    "/actorName*" { 
     dispatcher = mycustom-dispatcher 
    } 
} 

참고 : http://doc.akka.io/docs/akka/2.1.4/java/dispatchers.html#Setting_the_dispatcher_for_an_Actor

+0

최신 구성 참조 (http://doc.akka.io/docs/akka/2.4.17/java/dispatchers.html)에는 해당 예에서 와일드 카드 *가 없습니다. 그것없이 시험해 보셨습니까? 아무 곳에도 오타가 없다고 확신합니까? 기본 설정을 사용하고 있음을 어떻게 확인합니까? –

+0

@Diego, 기본 발송자를 사용하는 배우를 확인하는 로그. –

답변

0

예, 명시 적으로 배우 [S]에 디스패처를 할당 할 수 있습니다.

import akka.actor.Props 
val myActor = 
    context.actorOf(Props[MyActor].withDispatcher("my-dispatcher"), "myactor1") 

또는 자바 변형 : 당신은 당신의 배우와 함께 사용할 디스패처 지정해야 더 akka-docs

+0

배우를 만지지 않고 옵션을 찾고 있습니다.구성을 통해 언급 할 수있는 방법이 있습니까? –

0

에 대한 구성

ActorRef myActor = 
    system.actorOf(Props.create(MyUntypedActor.class).withDispatcher("my-dispatcher"), 
    "myactor3"); 

my-dispatcher { 
    executor = "thread-pool-executor" 
    type = PinnedDispatcher 
} 

확인, 일반적으로 사용할 디스패처를 지정할 수있는 실행 컨텍스트를 전달합니다.

implicit val executionContext = system.dispatchers.lookup("my-dispatcher") 

또한 여기에 지정된 같은 기본 디스패처 변경할 수 있기 때문에합니다 (documentation에서) 위의 작동하지 않습니다 https://doc.akka.io/docs/akka/snapshot/scala/dispatchers.html#default-dispatcher

0
akka.actor.deployment { 
    "/actorName*" { 
    dispatcher = mycustom-dispatcher 
    } 
} 

:

  • 와일드 카드를 부분적으로 일치하는 부분은 다음과 같이 사용할 수 없습니다. /foo*/bar, /f*o/bar

당신은, 그러나, 배우 계층 구조의 특정 수준에서 모든 배우와 일치하는 와일드 카드를 사용할 수 있습니다. 예를 들어 맞춤 발송자를 사용하려는 모든 액터가 akka://application/user/someParent/ 아래에 있다고 가정 해 보겠습니다. 그런 다음 다음과 같은 방법으로 someParent의 직접 아이들을 모두 구성 할 수 있습니다 :

akka.actor.deployment { 
    "/someParent/*" { 
    dispatcher = mycustom-dispatcher 
    } 
} 

더 많은 옵션에 대한 링크 된 문서를 읽어보십시오.