死信在发送消息时遇到错误

时间:2017-12-21 14:50:13

标签: scala actor

我很新,Actors正在试用它们,但我得到了这个例外,我不明白为什么我会得到它

ValueError: Error when checking input: expected conv2d_1_input to have 4 dimensions, but got array with shape (256, 256, 1000)

2 个答案:

答案 0 :(得分:1)

我不确定为什么会生成死信。但是问题模式的简单实现是

import akka.actor.{Actor, ActorSystem, Props}
import akka.pattern.ask
import akka.util.Timeout
import scala.concurrent.ExecutionContext.Implicits.global

object AskPattern extends App {
  case object AskName

  class Name extends Actor{
    override def receive: Receive = {
      case AskName => sender ! "Helmy"
      case s : String => println(s)
    }
  }

 implicit val timeout: akka.util.Timeout = Timeout.apply(1,java.util.concurrent.TimeUnit.SECONDS)
  val systemActor = ActorSystem("AskPattern")
  val actor1 = systemActor.actorOf(Props[Name],"Umair")
  val actor2 = systemActor.actorOf(Props[Name],"Farooq")

  actor2 ? AskName map { x => println(s"Resolved future $x") }
}

这是demo

答案 1 :(得分:0)

请提供完整的输出,以便我们可以尝试看看究竟发生了什么。

死信表示您要发送邮件的演员无法访问:邮件丢失。

首先请注意: sender取决于收到的上一条消息的上下文。它不是值,而是功能(每次收到消息时都会更改)。因此,请使用sender()代替sender

第二个注意事项: 您尝试实现的目标称为问题模式,而akka为此提供了便利。你应该看一下the documentation