1

我有一点玩!application(2.1, scala) 作为 Java 库的 RESTful 前端。此 Web 应用程序使用以下方式对任务进行排队以进行后台处理:

Akka.system.scheduler.scheduleOnce(Duration(0, SECONDS)) {
      new TaskWorker().run(batchId)
}

Tasks控制器中。

目标是立即开始 Java 库的繁重处理,但在后台。

随着 Scala 2.10 及其futures 和 promises的出现,重构队列以利用这个新 API 是否更有意义?

一般来说,我正在寻找一种能够执行Resque Ruby 库当前实现的后台处理的方法,但也许有一个进程内内存队列。(Redis 支持的队列也可以)。

4

1 回答 1

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)
于 2013-08-05T10:10:12.850 回答