我有一个.net类,它向正在播放的控制器发出HTTP请求但我的控制器必须等待请求,并且在一段时间后我必须对请求做出响应。我尝试过使用Promise但是无法弄清楚如何实现这个需要帮助解决这个问题......
提前致谢
答案 0 :(得分:1)
假设您想在Play 1.2.x中执行此操作,您将使用await
函数。例如,要接收请求,等待30秒,然后回复,您将执行
public static void delay30() {
await("30s");
renderText("a-response");
}
您可以使用任何渲染方法,renderText只是一个示例。
答案 1 :(得分:1)
等待通常不是最好的主意。你可能想要在这个例子中做的是创建一个Akka actor,它经常被Scheduler ping。当它收到ping消息时,它会检查你正在寻找的条件是否存在,并且会通知所有注册对该事件感兴趣的actor-ref。
当您通过询问模式向akka演员发送消息时,该消息的发件人是支持Future的演员,一旦该演员发送消息就会实现该演员。
Play 2.0有一种简单的turning an Akka Future into a Play Promise方式。你有它,Akka和Play的异步编程!
总而言之,您的Actor需要对两条消息做出反应: RegisterListener 平
RegisterListener是您使用ask模式发送的消息,actor将需要保留对该侦听器的发送者的引用,以便在满足条件时通知它。