2015-05-08 10 views
7
Ben Akka zamanlayıcı kullanmak isteyen

, örnekler söylüyor. Dokümantasyon biraz yüzeysel ve çok fazla değişiklik oldu (akka çekirdek scaladan taşındı). BenOyun frameworkünün standart ActorSystem 2'ye nasıl başvurulur?</p> <pre><code>system.scheduler.scheduleOnce() </code></pre> <p>ama "sistem" gelmesi gerektiğini hiçbir gerçek bilgi yoktur:

val system = akka.actor.ActorSystem("system") 

yazarsanız

Bir ActorSystem olacak, ancak yaklaşık 8 yeni iş parçacığı ile yeni bir bağımsız ActorSystem olacaktır. Sanırım, bu küçük bir programlayıcı için bir overkill ve gerçekten tavsiye edilmez.

Varolan oyun çerçevesi 2 sistemini nasıl yeniden kullanabilirim? Teşekkürler

cevap

9

Play tarafından tanımlanan varsayılan aktör sisteminde ellerinizi almak için play.api.libs.concurrent.Akkahelper'u almanız gerekir.

Akka.system varsayılan aktör sistemine bir referans olacaktır ve kendiniz tarafından oluşturulan bir aktör sistemi ile yapacağı gibi o zaman onunla her şeyi yapabilirsiniz:

import play.api.libs.concurrent.Akka 

val myActor = Akka.system.actorOf(Props[MyActor], name = "myactor") 
Akka.system.scheduler.scheduleOnce(...) 
+0

'context.system()' yi de kullanabilir miyiz? – user1870400

+0

evet, ama bu sadece zaten mevcut bir aktörün içinde çalışıyor – kosii

+0

Merhaba, Teşekkürler bu bir bak. Bu konuda çok çalışıyorum http://stackoverflow.com/questions/42963476/cannot-use-a-method-returning-play-mvc-websocket-as-a-handler-for-requests-in-pl# 42963476 – user1870400

1

play.api.libs.concurrent.Akka'u kullandığınızda, oynatma tarafından oluşturulan aktör sistemini kullanırsınız. Aslında bu teşvik edilen yoldur. Bunu documentation'da okuyabilirsiniz.

+0

Teşekkür hızlı cevap ve bağlantı için. Https://www.playframework.com/documentation/2.3.x/ThreadPools ve http://doc.akka.io/docs/akka/2.3.4/scala/dispatchers.html adresinde ve "sistem" i arıyordum. ". – Eduardo

İlgili konular