0

質問

akka-zeromqを使用してzeromqからメッセージを受信する単純なアクターを実装しようとしています。

import akka.actor._
import akka.zeromq._

class PullActor extends Actor {
  def receive = {
    case x => println("M: " + x.toString)
  }
}

object Main extends App {
  val system = ActorSystem("system")

  val pullActor = system.actorOf(Props[PullActor], "pull-actor")

  val pullSocket = ZeroMQExtension(system).newSocket(
    SocketType.Pull, Listener(pullActor), Connect("tcp://127.0.0.1:8008"))

  println("Press ENTER to exit")
  Console.readLine()
  system.shutdown()
}

システムはちょうど印刷します

M: Connecting

追加情報

メッセージの送信は単純なPythonを介して行われます

import zmq
ctx = zmq.Context()
p = ctx.socket(zmq.PUSH)
p.bind("tcp://*:8008")
p.send("test")

私が気付いたもう一つの奇妙なことは、Enterキーを押した後もプログラムが終了しないことです。Pythonスクリプトを使用してメッセージを送信すると表示されます。完全な出力は次のとおりです。

[DEBUG] [12/04/2012 18:01:45.175] [main] [EventStream(akka://system)] logger log1-Logging$DefaultLogger started
[DEBUG] [12/04/2012 18:01:45.178] [main] [EventStream(akka://system)] Default Loggers started
Press ENTER to exit
M: Connecting

[DEBUG] [12/04/2012 18:01:54.176] [system-akka.actor.default-dispatcher-2] [EventStream] shutting down: StandardOutLogger started
[DEBUG] [12/04/2012 18:01:54.176] [system-akka.actor.default-dispatcher-2] [EventStream] shutting down: StandardOutLogger started
[DEBUG] [12/04/2012 18:01:54.179] [system-akka.actor.default-dispatcher-2] [EventStream] all default loggers stopped

使用する

scalaVersion := "2.10.0-RC3"

libraryDependencies ++= Seq(
  "com.typesafe.akka" %% "akka-actor" % "2.1.0-RC3" cross CrossVersion.full,
    "com.typesafe.akka" %% "akka-zeromq" % "2.1.0-RC3" cross CrossVersion.full,
    "com.typesafe.akka" %% "akka-slf4j" % "2.1.0-RC3" cross CrossVersion.full
)

libzmqバージョンです3.2.2(Arch Linuxの場合)

これはapplication.conf

akka {
  loglevel = DEBUG
  zeromq {
    socket-dispatcher {
      executor = thread-pool-executor
      type = "PinnedDispatcher"
    }
  }
}
4

1 に答える 1

0

OK、問題が見つかりました。これはlibzmqライブラリバージョンです。ライブラリを2.2にダウングレードすると機能します。Akkaチームのチケットを作成しました:https ://www.assembla.com/spaces/akka/tickets/2769-akka-zeromq-doesn-t-receive-messages-with-libzmq-3-2#/アクティビティ/チケット

于 2012-12-05T09:40:09.570 に答える