2015-07-25 19 views
7

Làm cách nào để kết hợp các diễn viên được nhập và không được nhập? Như tôi hiểu tôi phải xác định diễn viên chính khi tôi tạo thể hiện của ActorSystem như thế nàyLàm cách nào để kết hợp các diễn viên được nhập và không được nhập?

val system: akka.typed.ActorSystem[Start] = akka.typed.ActorSystem("main", Props(mainBehaviour)) 

Mặt khác tôi sử dụng AKKA-http đó được khởi tạo như thế này

implicit val system = ActorSystem() 
implicit val executor = system.dispatcher 
implicit val materializer = ActorMaterializer() 
// etc... 

tôi thấy rằng tôi có thể tạo hệ thống đánh máy từ hệ thống untyped bằng cách gọi

object ActorSystem { 
    def apply(untyped: akka.actor.ActorSystem): ActorSystem[Nothing] = new Wrapper(untyped.asInstanceOf[ExtendedActorSystem]) 
} 

Vì vậy, giả sử tôi đã làm

val typeSystem = akka.typed.ActorSystem(untypedSystem) 

làm cách nào để tạo diễn viên được nhập đầu tiên của tôi từ typeSystem? Không có đánh máy nào là ActorContext có số actorOf Tôi có thể gọi.

vật liệu khác Tôi đã đọc về đề tài này là

Trả lời

3

Tốt bắt, điều này hiện không thuận tiện có thể: những gì bạn sẽ cần phải làm là tạo ActorSystem đã nhập và sau đó truy cập vào phần chưa được phân loại để khởi động phần mở rộng HTTP, nhưngPhương pháplà private[akka]. Bạn có thể truy cập điều này bằng cách đặt một số mã trợ giúp trong dự án của bạn trong không gian tên Akka hoặc bạn có thể đi theo cách khác xung quanh:

implicit val untyped = akka.actor.ActorSystem("main") 
import untyped.dispatcher 
implicit val mat = ActorMaterializer() 

import akka.typed.Ops._ 
val typedRef = untyped.spawn(Props(mainBehaviour)) 
val typedSys = ActorSystem(untyped) 

Http().bind(...) // and send things to typed 
+0

Cảm ơn rất nhiều! Nó hoạt động nhưng toàn bộ điều trông khá không thân thiện vì xung đột tên. Tôi phải viết 'AskPattern.Askable (typedRef).? (Bắt đầu) '. – expert

+1

Sau đó, có một cái gì đó sai trái với hàng nhập khẩu, xin vui lòng mở một vấn đề trên github để chúng tôi có thể sửa chữa nó đúng cách. –

Các vấn đề liên quan