Play 2.0框架 - 主应用程序周期的持久线程?

时间:2012-04-01 13:18:19

标签: multithreading scala playframework-2.0

我正在学习Scala的Play 2.0框架,除了能够处理请求之外,我还想在后台运行一个连续的任务,就像一堆定时器一样。并且能够以某种方式从请求 - 响应操作中访问这些计时器,而不会遇到任何线程同步问题。我在Play中听说过Jobs,在Scala中有演员。但是,我在2.0中找不到关于Jobs的任何信息,它们似乎已被Promises取代..但实际上这一切并不像运行持久的后台线程,我不确定Actors如何适应整个范例。

基本上,我的问题是 - 在Play 2.0中获得这种持久性的传统方式是什么。

1 个答案:

答案 0 :(得分:4)

不太对,作业没有被Promises取代,而是由scheduling to send messages to actors取代(参见“调度异步任务”)。

无论如何,演员似乎是你的最佳选择。 Play 2.0使用Akka。实际上,这很简单。 Akka主页详细解释了演员是什么以及你可以用它们做什么,但你可以把一个Actor想象成一些带邮箱的代码(比如一个函数)。您可以将邮件发送到邮箱,并且将为正在等待它的每条邮件运行该功能。这可能只是周期性工作的周期性信号,也可能是长期后台任务的参考,告诉它需要更新的内容。