我有点玩! application(2.1,scala),它充当Java库的RESTful前端。此Web应用程序使用以下命令对任务进行排队以进行后台处理:
Akka.system.scheduler.scheduleOnce(Duration(0, SECONDS)) {
new TaskWorker().run(batchId)
}
在Tasks
控制器中。
目标是立即开始Java库的繁重处理,但在后台。
在Scala 2.10及其futures and promises出现时,重构队列以利用这个新API会更有意义吗?
一般来说,我正在寻找一种能够执行当前由Resque Ruby库实现的后台处理的方法,但可能还有一个进程内存队列。(Redis支持的队列会很好太)。
答案 0 :(得分:0)
使用Akka演员
case class BatchTask(id: Int)
class TaskActor extends Actor {
def receive = {
case BatchTask(batchId) => new TaskWorker().run(batchId)
}
}
val taskWorker = context.actorOf(Props[TaskActor])
taskWorker ! BatchTask(batchId1)
taskWorker ! BatchTask(batchId2)
taskWorker ! BatchTask(batchId3)