在actor中实现超时

Dar*_*rek 1 scala actor

我是scala和演员的新手.我需要实现这样的假设情况:服务器等待消息,如果它没有得到任何说10s的时间段,它会向客户端发送消息.否则它会收到传入的消息.如果它在内部处理一些消息并且另一条消息到来,则需要排队(我想这是由scala actor自动完成的).

我遇到的第二个问题是睡觉.当接收到消息时,我需要演员睡一段时间.但另一方面,我无法阻止,因为我希望传入的消息排队等待进一步处理.

Dan*_*ral 6

这个怎么样?

loop {
  reactWithin(10000) {
    case TIMEOUT => // send message to client
    case work => // do work
  }
}
Run Code Online (Sandbox Code Playgroud)