Akka TypedActors(1.1.2)を使用しようとしています。私のようなインターフェースを持っていますAkka TypedActorの 'Unit'メソッドはタイムアウトしますが、非同期である必要があります。
trait Namespace {
def cellCount: Int
def isEmpty: Boolean
def cell(key: String): Option[CellOperations[_]]
def cellsLike(key: String): List[CellOperations[_]]
def updateOrCreateCell[T](n: String, v: Option[T]=None, d:List[DataOps[T]]=List.empty[DataOps[T]])
}
私はよく定義されたNamespaceImplを持っています。
class NamespaceImpl extends TypedActor with Namespace with Logging {
...
}
そして、私は春を通じて俳優を作成します。
実行時に<akka:typed-actor id="namespace"
interface="com.fi.depends.namespace.akka.Namespace"
implementation="com.fi.depends.namespace.akka.NamespaceImpl"
timeout="10000"
scope="singleton">
</akka:typed-actor>
方法は、型ユニットであるため、私は定期的に、私の理解に今までに起こるべきでない、updateOrCreateCellへの呼び出しにタイムアウトと私はそれが生成すると非同期呼び出しを期待しています。私が見るスタックトレースで
:
akka.dispatch.FutureTimeoutException: Futures timed out after [10000] milliseconds
[NYCWD2328_1c52ee80-c372-11e0-8343-0023ae9118d8]
at akka.dispatch.DefaultCompletableFuture.await(Future.scala:718)
at akka.actor.ScalaActorRef$class.$bang$bang(ActorRef.scala:1332)
at akka.actor.LocalActorRef.$bang$bang(ActorRef.scala:587)
at akka.actor.ActorAspect.localDispatch(TypedActor.scala:966)
at akka.actor.TypedActorAspect.dispatch(TypedActor.scala:904)
at akka.actor.TypedActorAspect.invoke(TypedActor.scala:899)
at com.fi.depends.namespace.akka.Namespace$$ProxiedByAWDelegation$$1314085842186_1__786390915__878797045___AW_JoinPoint.proceed(Unknown Source)
at com.fi.depends.namespace.akka.Namespace$$ProxiedByAWDelegation$$1314085842186_1__786390915__878797045___AW_JoinPoint.invoke(Unknown Source)
at com.fi.depends.namespace.akka.Namespace$$ProxiedByAWDelegation$$1314085842186.updateOrCreateCell$default$3(Unknown Source)
私が見ているという事実「ScalaActorRefの$クラスの$ビッグバン$バン」何かが非常に間違っていることを私に伝えます。
ご協力いただければ幸いです。
こんにちはViktor - 私はそれを試み、同じ例外と同じスタックトレースを得ました。私はこの問題がある最小限のテストケースを見つけるために私の特定のアプリケーションの細部を取り除こうとしていますが、今週末までにはそれを達成できません。 (私はAkkaに既存のScala Actorsアプリケーションを移植しようとしています。型付きアクターをあきらめたくないからです。 – Jim
1.2のストレートTypedActorsで問題を再現しようとしました。 -RC2と私はできませんでした。 Btw、Akka 2.0のために、ブランドスパンキンの新しいTypedActorの実装があることを知っていますか?:https://github.com/jboner/akka/blob/86bd9aaa51fda375a1d04cb87019441a9ca56fed/akka-actor/src/main/scala/akka /actor/TypedActor.scala –