【发布时间】:2015-08-12 22:52:23
【问题描述】:
使用 Akka 作为后台 Worker 好用吗?
就像我想在数据库中插入一些查询,然后向我的用户返回一些东西,但在我想安排一个任务之前,该任务还应该将数据索引到另一个不需要回调的数据库中。
例子:
class Worker extends Actor {
override def receive = {
case t: Task =>
Future {
// do some long running work, which shouldn't affect a user
}
}
}
这行得通吗? 如果我一次发送多个任务会发生什么?它会立即开始运行它们,还是 Actor 会等到 Future 成功?
编辑:另外我会定义另一种情况,例如 case r: Reindex => 应该重新索引所有对象,有没有办法锁定它,以便它一次只运行一个重新索引? (特别是如果我有不止一台服务器)
【问题讨论】: