0
我有代表工人重长时间作业的演员:如何正确地实施作业队列与职工演员
class Worker extends Actor{
override def receive: Receive = {
case "doJob" =>
Thread.sleep(999999)
sender ! "JobResult"
}
}
我将不得不限制作业队列,并明确拒绝的用户,如果队列已满。实施这个逻辑的最佳实践是什么?我应该使用边界邮箱还是一些调度程序,该监视作业队列?事情是这样的:
class Dispatcher(worker:ActorRef) extends Actor{
val MAX_JOBS = 10
var jobs = 0
override def receive: Receive = {
case "newJob" =>
if (jobs >= MAX_JOBS) sender ! "Try later"
jobs+=1
worker ! "doJob"
case "JobResult" =>
jobs-=1
}
}
此外,我不知道如何正确处理故障在这种情况下...