Я пытаюсь написать актера, который считает сообщения, которые он получает, и печатает, когда он попадает в определенное количество видимых сообщений.Акка Акка, не получающая Массив [Byte]?
Я получил его для работы, когда я отправляю сообщения актеру в виде строки, но когда я пытаюсь отправить и массив [Bytes], актер не выполняет функцию приема, но он также не выполняет вызывать его еще один случай.
Код для строки обработки, которая работает:
class CountingActor extends Actor {
val log = Logging(context.system, this)
val startTime = System.currentTimeMillis
var count = 0
val actorName = self.path.name
def Count: Actor.Receive = {
case message: String =>
count += 1
if(count % 50000 == 0 && count != 0){
var elapsed = (System.currentTimeMillis - startTime)/1000.0
var mps = count/elapsed
log.info(s"Processed $count messages in $elapsed ($mps msg/s) in $actorName")
}
case _ => log.info("Something happened and I dont know, it wasn't a string")
}
def receive = Count
}
Код, который не может обработать и Array [Byte] точно так же, но я указать случай, как массив [Byte] вместо строки.
class CountingActor extends Actor {
val log = Logging(context.system, this)
val startTime = System.currentTimeMillis
var count = 0
val actorName = self.path.name
def Count: Actor.Receive = {
case message: Array[Byte] =>
count += 1
if(count % 50000 == 0 && count != 0){
var elapsed = (System.currentTimeMillis - startTime)/1000.0
var mps = count/elapsed
log.info(s"Processed $count messages in $elapsed ($mps msg/s) in $actorName")
}
case _ => log.info("Something happened and I dont know, it wasn't a string")
}
def receive = Count
}
Я попробую еще раз. Я просто предполагаю, что это было не с тех пор, как я набросил на него 100 000 сообщений и не увидел отпечатков, но спасибо, я буду переоценивать логику подсчета. – erikreppel