2

akka を使用してアプリを実行すると、次の例外で失敗します。

Event Handler specified in config can't be loaded [com.despegar.hasp.impl.DummyLogEventHandler] due to [a06c8d75-0f07-40db-883a-16dc2914934bakka.event.Logging$LoggerInitializationException: Logger log1-DummyLogEventHandler did not respond with LoggerInitialized, sent instead [TIMEOUT]

DummyLogEventHandler は次のように定義されます。

class DummyLogEventHandler extends Actor {
   def receive = {
     case InitializeLogger(_) => sender ! LoggerInitialized
     case Error(cause, logSource, logClass, message) =>
     case Warning(logSource, logClass, message) =>
     case Info(logSource, logClass, message) =>
     case Debug(logSource, logClass, message) =>
   }

}

私の構成には次の行があります。

event-handlers = ["my.app.DummyLogEventHandler"]
event-handler-startup-timeout = 15s

しかし、デフォルトのロガーでも試しました:

event-handlers = []

および slf4j の場合 (私のアプリは logback バックエンドを使用しており、ログは正常に機能します):

event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]

これらのイベント ハンドラーも、タイムアウトを 60 秒に増やすことも、これまでのところ機能していません。さらに、タイムアウトは散発的にスローされます。テスト スイートを実行すると、毎回異なるテストで例外がスローされます。

解決策を見つけるのを手伝ってもらえますか?

ありがとう、アレックス。

4

3 に答える 3

3

ロガーの初期化により大きなタイムアウトを設定してみてください:

たとえば、conf ファイルでは次のようになります。

     akka {logger-startup-timeout = 25s }

ドキュメントをチェックアウト

http://doc.akka.io/docs/akka/snapshot/general/configuration.html

于 2014-02-25T17:13:27.557 に答える
1

akka-userに関する議論の後、次のことがわかりました。

akka.actor.default-dispatcherこの問題は、 を の に設定した場合の症状ですtype = BalancingDispatcher。これは動作しません。そのディスパッチャー タイプのドキュメントを参照してください。

  • すべてのアクターは、メッセージを取得する単一のメールボックスを共有します。

  • このディスパッチャーの同じインスタンスを使用するすべてのアクターが、アクターの 1 つに送信されたすべてのメッセージを処理できると想定されています。つまり、アクターはアクターのプールに属し、クライアントには、特定のメッセージを実際にどのアクター インスタンスが処理するかについての保証はありません。

  • 共有可能性: 同じタイプのアクターのみ

于 2013-04-25T08:59:00.733 に答える