小编use*_*479的帖子

在Akka演员中使用Futures

我刚刚开始学习Scala中的Akka Actors.我的理解是,Actor接收的消息在Actor的邮箱中排队,并且一次处理一个.通过一次处理一个消息,可以减轻并发问题(竞争条件,死锁).

但是如果Actor创建了一个与消息相关的工作的未来会发生什么?由于未来是异步的,因此Actor可以开始处理接下来的几条消息,而与先前消息相关联的未来仍然在运行.这不会产生竞争条件吗?如何在Actor的receive()方法中安全地使用future来执行长时间运行的任务?

scala future actor akka

14
推荐指数
2
解决办法
3005
查看次数

Scala/Java Sandbox用于不受信任的代码

我想允许用户从浏览器客户端提交Java/Scala源代码并在服务器上编译/执行它.但是,与此同时,我想限制用户在服务器上运行潜在的恶意代码.

例如,我想阻止文件系统访问以及提交的源代码的入站/出站网络访问.我还应该限制什么?

我应该明确禁止哪些Java/Scala库用于客户端?例如,这是我的不允许的API /库列表:

java.lang.System
java.lang.Runtime
java.io.*
java.nio.*
scala.io.*
java.net
Run Code Online (Sandbox Code Playgroud)

如何正确沙箱不受信任的Java/Scala代码?

java security scala

5
推荐指数
1
解决办法
787
查看次数

Akka Actors - 创建演员池

我在 Scala 中创建了以下 Akka Actor 代码。创建单个 workerActor 时,代码工作正常。但是当我尝试使用循环逻辑创建一个工作人员池时,代码默默地失败了。知道如何解决这个问题吗?如何获得更多要打印的调试信息?

import scala.collection.immutable.Map
import scala.collection.mutable.ArrayBuffer

import akka.actor.actorRef2Scala
import akka.actor.ActorSystem
import akka.actor.Props
import scala.concurrent.Await
import scala.concurrent.duration._
import akka.pattern.ask
import akka.util.Timeout
import akka.actor._
import org.junit._
import org.junit.Assert._
import messaging.actors._
import akka.routing.RoundRobinRouter
import akka.routing._

class MainEngineActorTest {

  @Test
  def testMainActor () = {
  val _system = ActorSystem("MainEngineActor")
  val master = _system.actorOf(Props[MainEngineActor], name = "EngineActor")

  println ("Created Main Engine Actor")


  implicit val timeout = Timeout(5 seconds)

  val userID = new UserID ("test1")

  println ("Sending messages")

  for (i …
Run Code Online (Sandbox Code Playgroud)

scala actor akka

3
推荐指数
1
解决办法
8137
查看次数

标签 统计

scala ×3

actor ×2

akka ×2

future ×1

java ×1

security ×1