ich wieder lernen Scala, und ich wollte ein System fließen tun wie folgtAkka HTTP + Schauspieler + Slick postgresql
Routen (Akka-Http), die ein Schauspieler Model (Akka) fragt, die dann die Datenbank fragt durch ein Slick-Modell.
So etwas wie
Strecke
path("rooms"){
get {
val rooms = (actorRoom ? GetRooms).mapTo[Seq[Room]] //bad code
complete(rooms) //bad code
}
}
ActorRoom
def receive = {
case GetRooms => sender() ! ModelRoom.getRooms()
Slick Modell
val rooms = TableQuery[RoomTable]
def getRooms(): Future[Seq[Room]] = rooms.result
Mein Problem ist, dass ich nicht sicher bin, wenn die Räume zu lösen.
Sollte ich es innerhalb des Schauspielers tun? (Die Route komplett scheint nicht zu warten)
Soll ich es innerhalb der Route tun? (Wie soll ich es tun?)
Ist dieser Ansatz richtig, oder der Schauspieler ist zu viel?
Entschuldigung, die Verzögerung. Ich erhalte diesen Fehler: [FEHLER] [22.02.2017 15: 21: 05.210] [myapp-akka.actor.default-dispatcher-3] [akka.actor.ActorSystemImpl (myapp)] Fehler bei der Bearbeitung der Anfrage : 'Vector (Room (Some (1), desigual, 123.4.564.4, false, None)) (der Klasse scala.collection.immutable.Vector)'. Abgeschlossen mit 500 Interner Serverfehlerantwort. Der dbCallThroughActor wird nicht aufgelöst, und der Fehler bei onComplete wird ausgelöst. – Ruben
protokollieren Sie die Stack-Ablaufverfolgung des Fehlers. Stellen Sie die Code- und Stack-Trace bereit. –