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
}
}
此外,我不知道如何正確處理故障在這種情況下...